項目學習(1)

今天作項目的時候遇到一個問題,而後苦思冥想不得結果,報錯卻debug了好久不知爲什麼而錯。如今剛剛解決,記錄在博客裏吧,你們分享。java

String sql = "select product_id,newprice,unit,img from goods where keyword like '%?%'";mysql

我寫了這麼一條sql語句,而後習慣性的使用PreparedStatement的setString方法把參數設置進去,可是卻報錯,說參數沒有被設置進去。sql

java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:2556)
at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:3381)
at com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:2786)spa

。。。debug

經過驗證,不是個人語句問題,也不是設置的問題,是本來模糊查詢就不能這麼設置。博客

模糊查詢設置的時候只能將%放在setString中設置ps.setString(1,"%"+param+"%");it

而sql語句也要注意改成select * product_id,unit,img from goods where keyword like ?;注意:沒有''io

相關文章
相關標籤/搜索