java批量insert入mysql数据库

时间:2023-03-09 05:34:27
java批量insert入mysql数据库

mysql 批量insert语句为

insert into Table_(col1,col2...) values(val11,val12...),(val11,val12...),...;

java代码示例

jdbc连接串中设置rewriteBatchedStatements=true,

        int step = 50 * 10000;
Connection conn = ConnectionPool.bds.getConnection();
conn.setAutoCommit(false);
String sql = "SET UNIQUE_CHECKS=0";
Statement st = conn.createStatement();
st.execute(sql); PreparedStatement ps = conn.prepareStatement("insert into henan_enterprise(name) values(?)");
int count = 0;
long time0=System.currentTimeMillis();
for (String s : ne) {
ps.setString(1, s);
ps.addBatch();
if (++count % step == 0) {
ps.executeBatch();
long t=System.currentTimeMillis();
logger.debug("execute "+count+" times!用时:"+LocalUtil.formatTime(t-time0));
}
}
if (ne.size() % step != 0) {
ps.executeBatch();
long t=System.currentTimeMillis();
logger.debug("execute "+count+" times!用时:"+LocalUtil.formatTime(t-time0));
}
conn.commit();
sql = "SET UNIQUE_CHECKS=1";
st.execute(sql);
st.close();
ps.close();
conn.close();

参考:

http://www.111cn.net/database/mysql/53274.htm

http://elf8848.iteye.com/blog/770032