eclipse在dao層寫的模糊查詢sql:String sql = "select count(*) from product where pname like '%?%'";
這樣寫會導致以下錯誤
Wrong number of parameters: expected 0, was given 1 Query: select count(*) from product where pname like '%?%' Parameters: [%小%]<br/>
原因:
系統並沒有把sql里面的語句當成占位符?,只是當成了普通的字符。
如果在其他sql遇到這樣的報錯,
檢查sql需要的參數個數(expected 0)和傳遞的參數個數(was given 1)是否一致
解決方法:
將sql改成:String sql = "select count(*) from product where pname like ?";
然后將被占位的參數用 "%"+參數+"%"拼接作為模糊查詢的條件<br/>
保證sql需要參數數量和給出的參數數量一致