在很多編程語言中這樣的事情是可能的準備語句:使用變量,而不是用JDBC參數指數編制聲明
PreparedStatement statement = connection.prepareStatement(
"SELECT id FROM Company WHERE name LIKE ${name}");
statement.setString("name", "IBM");
但不能與java.sql.PreparedStatement中。在Java中,必須使用參數索引:
PreparedStatement statement = connection.prepareStatement(
"SELECT id FROM Company WHERE name LIKE ?");
statement.setString(1, "IBM");
是否有類似於第一個示例中的字符串變量的解決方案? 「$ {。*}」不是在SQL語言的其他地方使用,還是存在任何衝突?因此,我會自己實現它(解析SQL字符串並將每個變量替換爲「?」,然後以Java方式執行)。
問候, 凱
我一直困惑不已了。 http://www.javaworld.com/javaworld/jw-04-2007/jw-04-jdbc.html有一些我曾經用過的東西。 – akarnokd 2009-07-08 12:53:31
嘿kd304,我想知道爲什麼你沒有留下你的消息作爲答案,而不是使用評論。因爲我認爲這是解決這個問題的方法。 – Zardoz 2009-07-08 13:32:38
@tokel:我不確定你的問題是不是理論上的問題,我的評論並沒有真正回答你輸入的問題。 – akarnokd 2009-07-08 21:24:08