Java未知SQL语句类型时PreparedStatement执行方法选择问题
未知SQL类型时PreparedStatement执行方案
针对无法提前获知SQL类型的场景,JDBC规范已经提供了原生的通用执行方法,无需自行解析SQL:
- 优先使用
PreparedStatement的execute()方法,该方法返回boolean类型的结果标识:- 返回
true:代表执行的SQL第一个结果为ResultSet类型(对应SELECT类查询语句),此时可调用stmt.getResultSet()获取结果集做后续处理 - 返回
false:代表执行的SQL第一个结果为更新计数(对应INSERT、UPDATE、DELETE、DDL等非查询类语句),此时可调用stmt.getUpdateCount()获取受影响的行数,若返回值为-1则代表当前没有可用的更新结果
如果涉及多结果返回的场景(比如调用包含多个输出的存储过程),可以搭配stmt.getMoreResults()循环遍历所有返回结果即可。
- 返回
内容的提问来源于stack exchange,提问作者JochenW
相关产品推荐
相关产品推荐

