2012-05-24 25 views
1

我想學習如何做一個PreparedStatement如下:爲什麼我用這個準備好的語句得到一個語法錯誤?

createConnection(); 
conn.setAutoCommit(false); 
String sql = "SELECT MAX(?) FROM ?"; 
PreparedStatement stmt = conn.prepareStatement(sql); 

然而,當我打的最後一行,它拋出一個java.sql.SQLSyntaxErrorException如下:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "?" at line 1, column 20. 

我到處搜索,但無法找到任何失敗原因。我究竟做錯了什麼?後來在代碼中我設置了?參數意味着完整的字符串值,但是當我調試時,我從來沒有達到過這一點。它碰到這個conn.prepareStatement行並拋出異常。謝謝您的幫助。我不知道它是否有所作爲,但它在德比數據庫上。

回答

1

想想你的?標記爲一個sql變量。你不能對變量做一個選擇MAX,它的語法不正確。

你不能做到以下幾點:

declare @myvar int 
select @myvar = 1 

SELECT MAX(@myvar) from SomeTable 
+0

這是有道理的。非常感謝您的幫助! :) –

相關問題