【发布时间】:2015-12-06 11:56:24
【问题描述】:
我一直在尝试获取在 jdbc 中运行 executeBatch() 时正在执行的查询。使用executeQuery() 时,我可以使用originalSql 变量或sql(从Statement 接口实现)获得正确的查询,但是当我为executeBatch() 打印originalSql 变量时,它只打印原始 sql 作为名称本身,带有所有 ? 标记。
String insertTableSQL = "INSERT INTO Employees"
+ "(id, age, first, last) VALUES"
+ "(?,?,?,?)";
PreparedStatement preparedStatement = conn.prepareStatement(insertTableSQL);
preparedStatement.setInt(1, 101);
preparedStatement.setInt(2, 67);
preparedStatement.setString(3, "niky");
preparedStatement.setString(4, "baa");
preparedStatement.addBatch();
int[] rs2 = preparedStatement.executeBatch();
我也浏览了executeBatch() 的代码。但我仍然无法找到用输入值填充变量的确切位置。我被困在这几天了。
我们将不胜感激。 (如果有一些我被所有三种方法调用的方法,executeQuery、executeBatch 和executeUpdate,它会让我的工作更轻松)
【问题讨论】:
-
感谢您的链接,这确实解决了我正在寻找的内容。看起来我无法通过代码找到这样的方法......(我希望我之前遇到过那个线程......)