想同时往数据库同一个表插入多条记录,有啥好方法,求大神赐教!
现在我想同时往数据库同一个表插入多条记录,除了循环多次用insert语句插入,有没有更好(更优化)的方法呢? 数据库 插入
[解决办法]
拼接sql语句,进行批量插入,我目前知道mysql和oracle的,sqlserver的就不知道了。网上应该都有用法的,百度一下。
比起反复插入的优势是,不用频繁的打开关闭数据库。
不过如果你要插入的数据量不大的话,其实更改的必要性不大。
[解决办法]
package day2;
import java.sql.*;
import day1.ConnectionUtils;
/**
* 测试JDBC中的批处理
* @author 张三
* @version 1.0
*/
public class BatchDemo {
/**
* @param args
*/
public static void main(String[] args) {
batch(100);
}
/**
* 批量插入记录到temp_ning表中
* @param count 要插入的记录总数
*/
public static void batch(int count){
String sql = "insert into temp_ning values(?)";
Connection conn = null;
PreparedStatement stmt = null;
try{
//coding here
conn = ConnectionUtils.getConnection();
conn.setAutoCommit(false);//设置为非自动提交
stmt = conn.prepareStatement(sql);
for(int i = 107; i <= 156; i++){
stmt.setInt(1, i);
stmt.addBatch();//加入到批处理集合
if (i % 10 == 0){
stmt.executeBatch();
stmt.clearBatch();
}
}
stmt.executeBatch();//执行批处理集合中的语句
conn.commit();//提交
}catch(Exception e){
e.printStackTrace();
}finally{
ConnectionUtils.close(stmt);
ConnectionUtils.close(conn);
}
}
}