在要对数据库表导入大量数据时,使用PrepareStatement加批处理是比较好的,我使用的时候每秒能导入几万数据。
导入jdbc文件,获得连接conn
先conn.setAutoCommit(false) 关闭自动提交
PrepareStatement ps =conn.prepareStatement("insert into <tableName> (id,name)values(?,?)");
这是插入,执行其他操作也行。
然后再把数据放进去 ps.setInt(1,"101") ,ps.setString(2,"xiaoming"),根据自己的数据类型添加,写个循环,在添加完一行数据后,ps.addBatch(),然后再添加其他行。
最后使用ps.executeBatch() 把所有的语句一次性执行。
conn.commit()
ps.close()
conn.close() 结束
这个相当于一个插入语句:insert into <tableName> (id,name)values(?,?) (101,"xiaoming")(..,"..")()... 这样就相当于一个事务,执行更快。