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 进行拼接 将模糊查询的语句当成一个参数传递进去!!