日期:2014-05-19  浏览次数:20617 次

java执行的sql有中文,获取不了记录
数据库:Mysql5.1, default-character-set 为 gb2312  

tomcat: 版本5.5,没设置过任何跟encoding有关的东西。

在JSP上调用javaBean时,java程序中执行  select count(*) from gzl_table_memo where blr like '%陈琳%'  or blr='陈琳' 这种含有中文的SQL语句,实际上DB是有9条记录的,但在java中执行显示0条记录,这条SQL在tomcat控制台显示也没有问题。

把SQL语句的条件改为不含中文的时候,显示的记录数又是正常的,我觉得是中文的意思,但不知在哪个关节上出问题,所以不知从哪里下手。

  谢谢各位指点。
------解决方案--------------------
编码问题,你用java程序执行的sql可能乱码了。所以查不出记录
------解决方案--------------------
你的sql等同于

select count(*) from gzl_table_memo where blr like '%陈琳%'

就我看来,应该是编码问题
------解决方案--------------------
你的url修改下加上编码,比如:
jdbc:mysql://192.168.8.4:3306/iplugserver?characterEncoding=gb2312

所有地方的编码都要统一。编码不统一就会出问题。