Мое приложение использует MySQL на одной платформе и SQLite на другой, поэтому есть различия, например, при использовании запроса типа DELETE FROM USERS
:
- В MySQL
PreparedStatement.getResultSet()
вернетnull
. - В SQLite
PreparedStatement.getResultSet()
вызоветjava.sql.SQLException: no ResultSet available
.
Это может быть или не быть ошибкой в реализации SQLite (я думаю, что она должна возвращать null
), но мне нужно как-то с этим справиться.
Я мог бы использовать try { ... } catch (SQLException e) { ... }
, и если сообщение об исключении "no ResultSet available"
, просто вернуть null вручную. Однако это не похоже на правильный способ сделать это.
Я мог бы разместить сообщение, если это проверит, какой драйвер JDBC используется, и отреагирует соответствующим образом, но опять же, это не похоже на хорошее решение проблемы.
Что бы мне действительно хотелось, так это метод типа .hasResultSet()
, который возвращает boolean
ИЛИ способ получить команду SQL (SELECT, UPDATE, INSERT
и т.д.) из оператора, который был выполнен. Я не могу найти ни один из двух в SQL API .