www88485400 2009-06-29 11:30
浏览 145
已采纳

关于数据库批处理的问题

一般的批处理都是这样的:

//使用PreparedStatement进行批处理
PreparedStatement psStatement = connect.prepareStatement("你的SQL语句(?)");
psStatement.setString(1,"Jennie");
psStatement.addBatch();
//根据需要添加多条批处理语句
psStatement.setString(1,"Tom");
psStatement.addBatch();
//获得批处理的结果
int[] uCounts = psStatement.executeBatch();
//和上面一样可以一次性执行
connect.commit();

现在呢 我想向多个表插入数据也用批处理 并且他们可能交叉在一起不知道能不能实现
那位高人给我一共一个例子看看。
如果我用下方这种方式可不可以提个意见

//使用PreparedStatement进行批处理
PreparedStatement psStatement1 = connect.prepareStatement("你的SQL语句(?)");
psStatement1.setString(1,"Jennie");
psStatement1.addBatch();
//根据需要添加多条批处理语句
PreparedStatement psStatement2 = connect.prepareStatement("你的SQL语句(?)");

psStatement2.setString(1,"Tom");
psStatement2.addBatch();
//获得批处理的结果
int[] uCounts1 = psStatement1.executeBatch();
int[] uCounts2 = psStatement2.executeBatch();

//和上面一样可以一次性执行
connect.commit();

[b]问题补充:[/b]
我只是想用 prepareStatement 这种方法 不知道用这种方法可不可以处理

  • 写回答

2条回答 默认 最新

  • joy_gw 2009-06-29 16:33
    关注

    PreparedStatement 是 Statement 子类,PreparedStatement 当然可以实现
    例:
    [code="java"]PreparedStatement p = (PreparedStatement) con.createStatement();

    sql 为 sql 数组 {insert into xx values(?,?,?,)}
    for (String str : sql)

    {

    stm.addBatch(str); //将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。

    stm.setObject(1,xxx);
    stm.setObject(2,xxx);
    .......
    }

    stm.executeBatch() [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler