案例:mysql
工具方法:sql
public static Connection getConnection(){ try { Class.forName("com.mysql.jdbc.Driver"); ct = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","squirrel","xiaoyang"); } catch (Exception e) { e.printStackTrace(); } return ct; } /**释放数据库连接资源:注意数据库资源关闭的顺序*/ public static void closeConnection(){ try { //注意关闭数据库资源的前后顺序 if(rs!=null){ rs.close(); }if(ps!=null){ ps.close(); }if(ct!=null){ ct.close(); } } catch (SQLException e) { e.printStackTrace(); } }
测试方法:数据库
/** * PreparedStatement批量执行sql */ public static void excuteBatchInsertDatabase(){ ct=getConnection(); try { ct.setAutoCommit(false); ps=ct.prepareStatement("insert into user(name,passwd,age,gender) values(?,?,?,?)"); ps.setString(1, "BBBB"); ps.setString(2, "BBBB"); ps.setInt(3, 20); ps.setString(4, "F"); ps.addBatch(); ps.setString(1, "BBBB"); ps.setString(2, "BBBB"); ps.setInt(3, 20); ps.setString(4, "F"); ps.addBatch(); /** * 等价于sql语句: * insert into user(name,passwd,age,gender) values * ("BBBB","BBBB",20,'F'), * ("BBBB","BBBB",20,'F'); */ ps.executeBatch(); //批量执行sql,避免所以单次的insert操做创建多个Connection浪费资源 ct.commit(); } catch (Exception e) { e.printStackTrace(); try { ct.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } }finally{ closeConnection(); } }
执行excuteBatchInsertDatabase()方法数据库记录:工具
数据库数据记录代表:sql语句批量执行成功测试
注意:ui
批量查询最好交由一个事务组控制,若是出现操做异常能够进行事务回滚,不至于形成部分数据更新部分数据更新失败的尴尬局面,避免你脏数据污染数据库3d