Как проверить, является ли оператор SQL запросом или обновлением? - PullRequest
0 голосов
/ 21 апреля 2020

Я бы хотел проверить, является ли оператор SQL запросом или обновлением / вставкой / удалением, прежде чем я фактически выполню оператор. Прямо сейчас я делаю это:

if (stmt.execute(sqlStatement)) {
    // Deal with queries
}
else {
    // Deal with updates/inserts/deletes
}

, где stmt является оператором Java.

Проблема в том, что мне нужно выполнить некоторые SQL logi c только перед обновляет / вставляет / удаляет в таблицу, но не перед запросами.

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Если запрос содержится в php строке ... вы не можете использовать функцию php strpos () для поиска оперативного слова ... затем переходите или выполняйте оператор If на основе этого.

0 голосов
/ 21 апреля 2020

Я могу придумать два способа:

  1. Что-то вроде:

    if (sqlStatement.stripLeading (). ToLowerCase () startWith ("select") ) {// иметь дело с запросами} else {// предположим, что это что-то другое}

  2. В качестве альтернативы, JDB C имеет метод getResultSet () , который предназначен будет использоваться после execute, поэтому ваш код будет:

    // иметь дело с подготовкой запроса ResultSet results = jdbcStmtObj.getResultSet (); if (results! = null) {// у нас есть результаты}

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