java_jdbc_batch处理_主键id获取
//create1 速度较慢,create2较快,但是要根据数据库不同来决定
//ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps可以获取 id
package cn.itcast.batch; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import cn.itcast.JdbcUtils; import cn.itcast.user.DaoExcetpion; import cn.itcast.user.User; public class BatchTest { public static void main(String[] args) { // TODO Auto-generated method stub } public static void create(int i) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); String sql = "insert into t_user(username,password) values (?,?) "; ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(1, "batch name" + i); ps.setString(2, "password1"); ps.executeUpdate(); // 可以利用注析代码为bean赋值,id赋值,不用return // rs=ps.getGeneratedKeys(); // int id=0; // if(rs.next()){ // id = rs.getInt(1); // } // return id; } catch (SQLException e) { throw new DaoExcetpion(e.getMessage(), e); } finally { JdbcUtils.free(rs, ps, conn); } } public static void create2(int i) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); String sql = "insert into t_user(username,password) values (?,?) "; ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); for (int y = 0; y < 100; y++) { ps.setString(1, "batch name " + i); ps.setString(2, "batch password " + i); ps.addBatch(); } int[] iS = ps.executeBatch(); // ps.executeUpdate(); } catch (SQLException e) { throw new DaoExcetpion(e.getMessage(), e); } finally { JdbcUtils.free(rs, ps, conn); } } }