我的应用在一个平台上使用 MySQL,而在另一个平台上使用 SQLite,因此存在差异,例如在使用以下查询时DELETE FROM USERS
:
- 在MySQL上,
PreparedStatement.getResultSet()
将返回null
。 - 在SQLite上,
PreparedStatement.getResultSet()
会抛出java.sql.SQLException: no ResultSet available
.
这可能是也可能不是 SQLite 实现中的错误(我认为它应该返回null
),但我必须以某种方式处理这个问题。
我可以使用 a try { ... } catch (SQLException e) { ... }
,如果异常消息是"no ResultSet available"
,只需手动返回 null 。不过,这感觉不是正确的方法。
我可以提出一个 if 来检查正在使用的 JDBC 驱动程序并做出相应的反应,但同样,这并不是解决问题的好方法。
我真正想要的是.hasResultSet()
返回一个boolean
或SELECT, UPDATE, INSERT
从已执行语句中获取 SQL 命令(等)的方法。不过,我在 SQL API 中都找不到这两者。