2011-11-24 27 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