java程序中sql语句查询不到结果,但是数据库中却可以直接查询(mysql)

如标题所述,我在我们的项目中的sql语句查询不出结果,而且也没有报错,然后设置断点,将打印出的sql语句直接复制到 数据库中查询 却可以查询到相关的数据,请问这是为什么?有哪位大神知道原因吗

上图(一)为 统计测试语句在 程序中的查询结果

上图(二)为 统计测试语句在 数据库直接查询结果

上图(三)为 要获得结果集的查询语句 在程序中的查询结果为空

上图(四)为 要获得结果集的查询语句 在数据库中 查询的结果 不为空

想请教下为什么会出现这么奇怪的现象?

mysql的话有可能是字符集的问题。查看下数据库链接配置?
一般使用jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8追问

您是说  上图中的url吗?   如果是字符集的问题的话  是不是  应该所有的请求数据都应该为空?但是只是部分查询语句查处的结果是这样    并不是全部

追答

某些数据可能产生异常。mysql的链接一般是需要加上参数的,你可以试试。当然不一定是这个问题。

追问

刚才有大神提出了 是 查询条件中的 中文导致的 ,试着去除中文发现 有查询到数据。但是因为之前的就是这样写的也没有出现问题,然道是因为最近更改部署环境以及数据库导致 ,因为没有明确提出请求字符集参数?

追答

你这种情况肯定是服务器环境变化导致的,所以编码问题需要在项目开始前就确认好了

追问

已经解决了 根据您的建议和另外一位大神的判断 的确是因为字符集的原因 万分感谢

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-18
同遇到此问题,已解决,我的是因为此条语句前已经有代码将这条记录更改了,所以同样的sql两个地方一个查得到一个查不到,建议仔细检查前面的代码
第2个回答  2020-09-04
我之前遇到过,是Mysql安装后的my.ini配置文件的里面要指定编码格式。
[mysqld]
character-set-server=utf8
加上这个,再重启mysql。
第3个回答  2014-03-20
对,应该是jdbc连接字符集原因与mysql字符集不对应,中文问题
第4个回答  2014-03-20
有可能是JDBC驱动不支持这种SQL脚本。追问

您所说的是指 sql直接拼写的方式吗?但是我有其他的查询语句也是用 直接拼写的 但是却可以查询出结果

相似回答