Я пытаюсь выполнить инструкцию DDL в базе данных Oracle 11g с помощью JDBC. Я делаю это, используя boolean execute(String SQL)
класса Statement
.В JDBC как узнать, успешно ли выполнялся оператор DDL?
Ниже приводится фрагмент кода, который выполняет запрос и пытается определить результат запроса:
// Create a SQL string
String dropSql = "DROP TABLE Reviews";
stmt = conn.createStatement();
// Execute the query
boolean result = stmt.execute(dropSql);
// Get the result of the drop operation
if(result)
{
// Its a result set
System.out.println("Atleast one result set has been returned. Loop through them");
}
else
{
// Its an update count or no result
Integer updateCnt = stmt.getUpdateCount();
if(updateCnt == -1)
{
// No results
System.out.println("No results returned by the query");
}
else
{
// Update Count
System.out.println("Update Count: " + updateCnt);
}
}
Я не парень базы данных, но есть ситуации, когда оператор DDL бы не выполнить а не поднимать SQLException
? Если нет, тогда мне не нужно фиксировать, что возвращает метод execute. Отсутствие SQLException
указывает, что операторы DDL выполняются успешно.
tutorial, что я следую за recommendeds использования этого метода для операторов DDL:
boolean execute(String SQL) : ....... Use this method to execute SQL DDL statements or when you need to use truly dynamic SQL.
Хотя Jdbc documentation рекомендует использовать int executeUpdate(String sql)
для выполнения операторов DDL. Какой из них предпочтительнее?