姬長信(Redy)

Java SQL:Statement.hasResultSet()?


我的应用程序在一个平台上使用MySQL而在另一个平台上使用SQLite,因此存在差异,例如在使用DELETE FROM USERS等查询时:

>在MySQL上,PreparedStatement.getResultSet()将返回null.
>在SQLite上,PreparedStatement.getResultSet()将抛出java.sql.SQLException:没有可用的ResultSet.

这可能是也可能不是SQLite实现中的错误(我认为它应该返回null),但我必须以某种方式处理这个问题.

我可以使用try {…} catch(SQLException e){…},如果异常消息是“没有ResultSet可用”,则只需手动返回null.尽管如此,这并不是一种正确的方法.

我可以提出一个if,它会检查正在使用的JDBC驱动程序并做出相应的反应,但同样,这并不是解决问题的好方法.

我真正想要的是一个类似.hasResultSet()的方法,它返回一个布尔值或一种从已经执行的语句中获取SQL命令(SELECT,UPDATE,INSERT等)的方法. I can find neither of the two in SQL API though.