1 . 首先在工具类中封装下连接对象方法.,返回的是Connection对象.
2 .
注意看注释,先添加再用一句话执行.
@Test
public static boolean batchInsert() {
Statement statement = null;
Connection connection = null;
try {
//在工具类中DBUtils,封装了getConnection()
connection = DBUtils.getConnection();
statement = connection.createStatement();
//批量操作就是给stattement对象添加之后再执行,执行只有一条语句
for (int i = 0; i < 10; i++) {
statement.addBatch("insert into user (name,password)"
+ " values('name=="+i+"','password=="+i+"')");
}
// statement.executeBatch() 执行语句
int[] rowCounts = statement.executeBatch();
if(rowCounts.length>0) {
return true;
}else {
return false;
}
} catch (Exception e) {
}finally {
DBUtils.closeAll(null, statement, connection);
}
return false;
}
@Test
public static boolean batchDelete() {
Statement statement = null;
Connection connection = null;
try {
connection = DBUtils.getConnection();
statement = connection.createStatement();
for (int i = 5; i < 15; i++) {
statement.addBatch("delete from user where id = "+i+"");
}
int[] rowCounts = statement.executeBatch();
if(rowCounts.length>0) {
return true;
}else {
return false;
}
} catch (Exception e) {
// TODO: handle exception
}finally {
DBUtils.closeAll(null, statement, connection);
}
return false;
}
总结:
1 .至于返回的数组 rowCounts的元素是什么,在下篇会讲.
2 . statement.addBatch()的参数可以是sql语句,也可以这样写:
String sql="insert into user (name,password) values(?,?)";
try {
prepareStatement = connection.prepareStatement(sql);
for (int i = 0; i < 200; i++) {
prepareStatement.setString(1, "name111==="+i);
prepareStatement.setString(2, "pwd1111==="+i);
prepareStatement.addBatch();
}
prepareStatement.executeBatch();
}