确定jdbc中的DDL语句

时间:2011-11-24 16:02:59

标签: oracle jdbc

我正在编写一个执行不同sql语句的程序(query,dml,ddl,dcl)。如何确定执行的语句(方法boolean Statement#execute(String s))是ddl还是dcl。我知道如何确定查询。当execute()方法返回true时,语句是查询,当statement#execute()返回值为false时,它可以是dml,ddl或dcl。那么如何确定声明的类型呢?

1 个答案:

答案 0 :(得分:1)

结果的存在(execute() == true)不一定表示查询。例如在PostgreSQL中,DELETE语句也可以返回结果(使用returning子句时)。

要处理所有结果或更新语句的计数,您需要实现一个遵循getMoreResults()的Javadocs记录的指导原则的循环:

  

如果满足以下条件,则无法获得更多结果:

     

// stmt是一个Statement对象
  ((stmt.getMoreResults(current)== false)&&(stmt.getUpdateCount()== -1))