JDBC批量处理
来源:互联网 发布:学吉他的软件 编辑:程序博客网 时间:2024/06/12 20:40
Statement的execute()等方法一次只能执行一条SQL语句,如果同时有多条SQL语句要执行的话,可以使用addBatch()方法将要只系那个的SQL语句加入进来,然后执行executeBatch()方法,这样就在一次方法调用中执行了多条SQL语句,以提高执行效率。
为了保证这一批语句全部成功或者失败,应该把批处理放置在事务中进行:
try{
conn.setAutoCommite(false);//把自动提交事务设置为false
Statement stmt=conn.createStatement();
stmt.addBatch(“…”);//添加SQL语句
stmt.addBatch(“…”);//添加SQL语句
. . .
Stmt.executeBatch();//执行批处理
conn.commit();//提交事务
}catch(SQLException e){
try{
conn.rollback();//回滚事务
}catch(SQLExceptione1){
e 1.printStackTrace();
}
e.printStackTrace();
}finally{
Try{
Conn.setAutoCommit(true);//把自动提交事务设置为true
}catch(SQLExceptione){
e.printStackTrace();
}
//关闭资源
. . .
}
使用PreparedStatement也可以进行批处理:
try{
//启动事务------把自动提交事务设置为false
conn.setAutoCommit(false);
pstmt=conn.preparedStatement(sql);
pstmt.setXXX(1,…);//给占位符赋值
. . .
//把这些操作添加到批处理中
pstmt.addBatch();
pstmt.setXXX(1,…);//给占位符赋值
. . .
//把这些操作添加到批处理中
Pstmt.addBatch();
Pstmt.executeBatch();//执行批处理
//提交事务
Conn.commit();
}catch(SQLException e){
//回滚事务-------把所有的操作都取消
try{
conn.rollback();
}catch(SQLExceptione1){
e 1.printStackTrace();
}
e.printStackTrace();
}finally{
//关闭事务-----把自动提交事务设置为true
try{
conn.setAutCommit(true);
}catch(SQLExceptione){
e.printStrackTrace();
}
//关闭资源
. . .
}
批处理中执行的语句只能是更新语句(insert、delete、update),否则会抛出异常。
- JDBC批量处理
- JDBC的批量处理
- JDBC批量处理
- JDBC批量处理
- JDBC的批量处理
- JDBC的批量处理
- JDBC的批量处理
- JDBC的批量处理
- JDBC的批量处理
- 批量处理JDBC语句
- JDBC 批量处理
- jdbc批量处理
- JDBC的批量处理
- JDBC的批量处理语句
- JDBC的批量处理语句
- JDBC的批量处理语句
- (12)JDBC的批量处理
- 使用Jdbc进行批量处理
- 华为2012校园招聘上机编程题(3)
- 我混不了了
- C,C++表达式求值顺序
- LinearLayout layout_gravity
- 事务
- JDBC批量处理
- i++ : 顺序点(sequence point) 与 副作用 (side effect)
- EF Update Entity
- Windows8 试用
- 忘掉Apps吧,Carbyn的HTML5 OS闪亮登场
- qsort sort
- Linux命令大全
- linux中用mentohust设置联网环境
- 简易jQuery分页代码.