日期:2014-05-17  浏览次数:20731 次

想同时往数据库同一个表插入多条记录,有啥好方法,求大神赐教!
现在我想同时往数据库同一个表插入多条记录,除了循环多次用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();//执行批处理集合中的语句