在JDBC中,如何知道DDL语句是否成功执行?
我正在尝试使用JDBC在Oracle 11g数据库上执行DDL语句。我现在用的是这样做boolean execute(String
SQL)的的Statement
类。
以下是执行查询并尝试确定查询结果的代码段:
// Create a SQL stringString 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