发表于: 2017-07-08 09:58:38
4 1128
今天完成的事情:
昨天通宵了,今天把for循环插入修改好,让效率提升。想不到这个那么的难,不知道问题出在哪里。程序有些学着修改了。但是只执行到了链接数据库后直接完了,什么操作都没有。很奇怪。原本的代码也只是批量完成插入,但是插入速度并不快。插1w条数据用了77秒,可见速度一般
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class HelloJava {
public void HelloJava() {
try {
Class.forName( "com.mysql.jdbc.Driver" );
Connection
conn = DriverManager.getConnection( "jdbc:mysql://feyesesbvs.mysql.rds.aliyuncs.com:3306/db1?characterEncoding=UTF-8&useSSL=false" );
conn.setAutoCommit( false );
PreparedStatement pst = conn.prepareStatement(
"INSERT INTO table1 (`id`, `updata_at`, `create_at`, `name`, `qq`, `jobs`, `join_time`, `school`, `online_id`, `data_url`, `declaration`, `teacher`, `sources`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)");
Long pstTime = System.currentTimeMillis();
pst = conn.prepareStatement();
for (int i = 1; 1 <= 100000; i++) {
pst.setInt( 1, '?' );
pst.setString( 2, "null" );
pst.setString( 3, "null" );
pst.setString( 4, "吴彦祖" );
pst.setString( 5, "88888" );
pst.setString( 6, "金马奖影帝" );
pst.setString( 7, "20几年前" );
pst.setString( 8, "WWW.XXXX.COM" );
pst.setString( 9, "湛江张学友" );
pst.setString( 10, "东莞陈冠希" );
pst.setString( 11, "阳江刘德华" );
pst.setString( 12, "湛江张学友大战阳江刘德华" );
pst.setString( 13, "瞎比写" );
pst.addBatch();
}
pst.executeBatch();
conn.commit();
long endTime = System.currentTimeMillis();
System.out.println( endTime - pstTime );
}catch (ClassNotFoundException e){
e.printStackTrace();
throw new RuntimeException( e );
} catch (SQLException e) {
e.printStackTrace( );
} finally {
if (pst != null) {
try {
pst.close( );
} catch (SQLException e) {
e.printStackTrace( );
throw new RuntimeException( e );
}
}
if (conn != null) {
try {
conn.close( );
} catch (SQLException e) {
}
e.printStackTrace( );
throw new RuntimeException( e );
}
}
}
}
对比一下他人的代码发现,自己总是缺少一个main方法,有时候自己加了main方法过后,代码执行一半就直接结束了。
明天的计划的:把这个问题弄出来
遇到的问题:code问题
收获:今天毫无收获
评论