Java/JDBC: получение значимых результатов при выполнении произвольных операторов SQL (DML, DDL)JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Java/JDBC: получение значимых результатов при выполнении произвольных операторов SQL (DML, DDL)

Сообщение Гость »


Есть ли надежный способ получить тип оператора SQL (SELECT, INSERT, UPDATE, DELETE, если возможно, также CREATE, TRUNCATE, DROP, ALTER...) без его тщательного анализа? Возвращают ли базы данных надежный индикатор типа выполненного оператора, в идеале тот, который можно получить из java.sql.PreparedStatement?

Чтобы уточнить проблему: тривиальным способом было бы проверить первое ключевое слово, однако это кажется очень подверженным ошибкам (например, метки состояний, начинающиеся с WITH, синтаксис PL/SQL, собственные ключевые слова и т. д.) ). Идея реального определения типа исключительно на Java без внешних ресурсов кажется сложной, особенно если принять во внимание различных поставщиков и версий БД (включая будущие версии).

Насколько я могу судить, наиболее информативным методом выполнения произвольных операторов, вероятно, является .executeUpdate(), поскольку он возвращает количество затронутых строк для записи операторов; более того, он не будет возвращать ошибки SQL для успешно выполненных DDL (что, насколько я понимаю, является единственным индикатором успеха), а PreparedStatement все еще имеет извлекаемый java.sql.ResultSet для операторов SELECT. Но помимо того, что это будет нарушением различных передовых подходов из-за неправильного названия или злоупотребления методом, это все равно не даст четкого указания на тип выполняемого оператора.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»