QueryRunner模糊查詢報錯解決辦法

apache.commons.dbutils.QueryRunner  
進行模糊查詢、報錯
Wrong number of parameters: expected 1, was given 2 Query: 

並非是數量有問題,而是模糊查詢進行了轉義 %'字段'% 的值加上了 ‘ ’ 導致查庫報錯

解決辦法

String s ="%"+proName+"%";
System.out.println(s);
String sql=" SELECT sys_prod_detail.*,sys_prod_category.`list_name` FROM `sys_prod_category`,`sys_prod_detail` WHERE `sys_prod_detail`.`prod_category`=`sys_prod_category`.`id` AND `sys_prod_category`.`list_name`=? AND `sys_prod_detail`.`pro_name` LIKE  ?;";
try {
    List<ProdDetail> query = queryRunner.query(sql, new BeanListHandler<ProdDetail>(ProdDetail.class),listName,s);
        return query;
} catch (SQLException e) {
    e.printStackTrace();
}

定義SQL 進行拼接  將模糊查詢的語句當成一個參數傳遞進去!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章