如果用一个PreparedStatement执行一批更新语句

lilyfirstone 2006-03-17 04:04:13
我现在要一下子执行若干个更新语句,每一个都有不同的参数,并且可能是任何类型的字段,比如Blob什么的
有什么好的解决办法没有.
ps:要在一个事务里
...全文
275 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lilyfirstone 2006-03-17
  • 打赏
  • 举报
回复
to huangdeji(活着就是等死):
我这是更新不同的表,
那样子可能不行

to doway(john) :
sqlserver在一个事务里的一个连接中,不允许执行多个pstmt

假如我是单纯的insert的话,那么使用statement的批处理也行,但我就是怕处理大字段,比如blob,clob这些,insert语句又怎么处理

huangdeji 2006-03-17
  • 打赏
  • 举报
回复
String sql = "update Table set aaa = ? "
PreparedStatement pstmt1 = null;
pstmt1 = conn.prepareStatement(sql);
for(int i = 0;i < 100;i++){
pstmt1 .setInt(1,i);
pstmt1.addBatch();
}
pstmt1.executeBatch();
conn.commit();
doway 2006-03-17
  • 打赏
  • 举报
回复
事务与连接相关,与语句没什么关系。因此,最简单和正确的做法是使用多个语句,在一个手动事务中完成所有的操作。


lilyfirstone 2006-03-17
  • 打赏
  • 举报
回复
那参数呢,它能知道哪个参数是哪个sql语句的吗
pdvv 2006-03-17
  • 打赏
  • 举报
回复
PreparedStatement.addBatch(String sql);
PreparedStatement.executeBatch()

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧