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 進行拼接 將模糊查詢的語句當成一個參數傳遞進去!!