在JDBC中,如何知道DDL语句是否成功执行?

我正在尝试使用JDBC在Oracle 11g数据库上执行DDL语句。我现在用的是这样做boolean execute(String

SQL)的的Statement类。

以下是执行查询并尝试确定查询结果的代码段:

// 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语句成功执行。

我正在关注的教程建议对DDL语句使用此方法:

boolean execute(String SQL) : ....... Use this method to execute SQL DDL statements or when you need to use truly dynamic SQL.

尽管Jdbc文档建议使用int

executeUpdate(String sql)来执行DDL语句。两者中哪一个更可取?

回答:

SQLException无论使用哪种方法执行失败的语句,都会始终引发错误。executeUpdate适用于任何不能产生的语句ResultSet,这使其非常适合DDL语句。

以上是 在JDBC中,如何知道DDL语句是否成功执行? 的全部内容, 来源链接: utcz.com/qa/409988.html

回到顶部