PreparedStatement使用不同的SQL语句进行批处理(PreparedStatement batching with different SQL statements)
我想知道Java中是否有可能
String A = "UPDATE blah set x=? y=? z=? String B = "UPDATE blah set a=? b=? c=? d=?我想准备一份主要针对速度的声明,其次是安全性。 我希望能够为A填写绑定变量,执行A,为B绑定变量,然后执行B,然后提交整个事务。 有没有更好的方法来实现这一目标?
I'm wondering if something is possible in Java
String A = "UPDATE blah set x=? y=? z=?" String B = "UPDATE blah set a=? b=? c=? d=?"I'd like to have a prepared statement primarily for the speed, secondarily for the security. I want to be able to fill out the bind variables for A, execute A, bind variables for B, and execute B, then commit the entire transaction. Is there a better way to accomplish this?
最满意答案
您可以使用多个PreparedStatements来获得所需的结果:
// Prepare code for PreparedStatement #1 String varOne = "A"; String varTwo = "B"; String varThree = "C"; String queryOne = "UPDATE blah set x=? y=? z=?" PreparedStatement firstStmt = conn.prepareStatement(queryOne); firstStmt.setString(1, varOne); firstStmt.setString(2, varTwo); firstStmt.setString(3, varThree); firstStmt.executeUpdate(); conn.commit(); // Prepare code for PreparedStatement #2 String varOneB = "X"; String varTwoB = "Y"; String varThreeB = "Z"; String varFourB = "A"; String queryOne = "UPDATE blah set a=? b=? c=? d=?" PreparedStatement secondStmt = conn.prepareStatement(queryTwo); secondStmt.setString(1, varOneB); secondStmt.setString(2, varTwoB); secondStmt.setString(3, varThreeB); secondStmt.executeUpdate(); conn.commit();You can utilize multiple PreparedStatements for the desired result:
// Prepare code for PreparedStatement #1 String varOne = "A"; String varTwo = "B"; String varThree = "C"; String queryOne = "UPDATE blah set x=? y=? z=?" PreparedStatement firstStmt = conn.prepareStatement(queryOne); firstStmt.setString(1, varOne); firstStmt.setString(2, varTwo); firstStmt.setString(3, varThree); firstStmt.executeUpdate(); conn.commit(); // Prepare code for PreparedStatement #2 String varOneB = "X"; String varTwoB = "Y"; String varThreeB = "Z"; String varFourB = "A"; String queryOne = "UPDATE blah set a=? b=? c=? d=?" PreparedStatement secondStmt = conn.prepareStatement(queryTwo); secondStmt.setString(1, varOneB); secondStmt.setString(2, varTwoB); secondStmt.setString(3, varThreeB); secondStmt.executeUpdate(); conn.commit();更多推荐
发布评论