Определить оператор DDL в jdbc - PullRequest
1 голос
/ 24 ноября 2011

Я пишу программу, которая выполняет различные операторы sql (query, dml, ddl, dcl).Как я могу определить, что выполненный оператор (метод boolean Statement#execute(String s)) был ddl или dcl.Я знаю, как определить запрос.Оператор был запросом, когда execute() метод возвращает true, когда statement#execute() возвращаемое значение равно false, тогда это может быть dml, ddl или dclТак как же определить тип высказывания?

1 Ответ

1 голос
/ 24 ноября 2011

Наличие результата (execute() == true) не обязательно указывает на запрос.например, в PostgreSQL оператор DELETE также может возвращать результат (при использовании предложения returning).

Чтобы обработать все результаты или обновить счетчики оператора, необходимо реализовать цикл, который следует указаниям, задокументированным с помощьюJavadocs getMoreResults():

Больше нет результатов, когда верно следующее:

// stmt являетсяОбъект выписки((stmt.getMoreResults (current) == false) && (stmt.getUpdateCount () == -1))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...