我正在编写一个执行不同sql语句的程序(query,dml,ddl,dcl)。如何确定执行的语句(方法boolean Statement#execute(String s)
)是ddl还是dcl。我知道如何确定查询。当execute()
方法返回true
时,语句是查询,当statement#execute()
返回值为false时,它可以是dml,ddl或dcl。那么如何确定声明的类型呢?
答案 0 :(得分:1)
结果的存在(execute()
== true)不一定表示查询。例如在PostgreSQL中,DELETE语句也可以返回结果(使用returning
子句时)。
要处理所有结果或更新语句的计数,您需要实现一个遵循getMoreResults()
的Javadocs记录的指导原则的循环:
如果满足以下条件,则无法获得更多结果:
// stmt是一个Statement对象
((stmt.getMoreResults(current)== false)&&(stmt.getUpdateCount()== -1))