最近和小伙伴一起做项目,遇到这样的问题,查询的SQL语句为:
"select * from products p where p.cateid = ? AND p.name like ? order by p.pid "
当name属性有中文时,查询结果为空
用各种姿势调了一个晚上都没能解决,到了第二天早上才在网上找到解决方法。解决方法如下:
往数据库连接属性中的url传递参数,将编码方式设定为utf-8
jdbc:mysql://localhost:3306/table?useunicode=true&characterEncoding=utf8
还有,注意传入的参数不需要加单引号
parameters.add("%" + name + "%");