您好我正在尝试使用statement.addBatch(sql)
批量执行几个查询现在我发现如果查询是SELECT BLAH BLAH
那么它会抛出异常说BatchUpdateExecption
那么我该如何添加批处理中的SELECT语句。对于例如以下不起作用,因为批处理包含SELECT语句
st.addBatch("UPDATE")
st.addBatch("CREATE")
st.addBatch("SELECT")
st.executeBatch()
我可以在st.execute("SELECT")
而不是st.addBatch("SELECT")
中执行SELECT语句。这个用例有任何推荐的方法或最佳实践吗?请提前指导谢谢。
答案 0 :(得分:3)
批处理语句基本上适用于INSERT
,UPDATE
和DELETE
语句,它们不适用于SELECT
语句或DDL语句。如果要执行SELECT
语句,请在另一个不执行批处理语句的Statement
或PreparedStatement
中执行。
答案 1 :(得分:1)
即使是javadoc也说:通常addBatch是SQL INSERT
或UPDATE
语句。它不适用于SELECT
语句。Refer addBatch(String sql)
此外,无法在PreparedStatement或CallableStatement上调用addBatch(java.lang.String)
方法,但addBatch()
支持PreparedStatement。