有沒有辦法使用PreparedStatement
或其他實用程序參數化SELECT語句的字段?如何參數化SELECT語句的字段?
我的意思是這樣的:
SELECT ?, ? FROM MY_TABLE WHERE ? = ?
有沒有辦法使用PreparedStatement
或其他實用程序參數化SELECT語句的字段?如何參數化SELECT語句的字段?
我的意思是這樣的:
SELECT ?, ? FROM MY_TABLE WHERE ? = ?
不,JDBC不會讓你這樣做。參數背後的想法是加速執行並避免SQL感嘆號;參數化您正在選擇的列對這兩個目標無幫助。
嘗試用以下
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
我還使用Spring Framework和`JdbcTemplate` ......這能幫助我
? – davioooh
不,據我瞭解,JdbcTemplate採用「常規」SQL,並將其傳遞給JDBC。您需要構建自己的SQL模板庫 - 假設您的SQL語句大多數是「罐裝」的,並且列列表和表達式具有一定的靈活性,那麼不應該太困難。 – dasblinkenlight
@davioooh就JDBC而言,它不會讓你做更明智的事情,比如'select * from mytable where myfield in(?)',其中'?'代表一個「在列表中」。他們強迫你爲「列表中的」每個元素添加一個問號,這會導致甚至是基本的罐裝語句的重複。 – dasblinkenlight