2011-11-24 103 views
1

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

回答

1

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

要处理语句的所有结果或更新计数,您需要实现以下与getMoreResults()的Javadoc文档的指导方针循环:

有没有更多的结果时,符合下列条件:

// stmt是Statement对象
((stmt.getMoreResults(电流)== FALSE)& &(stmt.getUpdateCount()== - 1))

+0

我编辑了我的问题。我没有告诉我,我正在使用oracle – maks

+0

@maks:获取所有结果和更新计数的规则仍然适用。 –

+0

如果execute(String sql)只能获取一个查询作为参数,execute()方法如何返回多个结果集? – maks