mybatis执行SQL查不到数据,在数据库执行可以查到

mybatis执行SQL查不到数据,在数据库执行可以查到,第1张

datasource或者jdbc中的配置url不对 , 设置编码格式,表创建时候的编码格式需要在url中声明,并且传入的数据也应该是相同编码格式的(这个没注意,一直用的utf8).

比如 你创建一张表 使用的是engine innodb charset utf8那么你的数据源url连接就应该是 jdbc:mysql://(数据库地址+端口)/(数据库名)?useUnicode=true&characterEncoding=utf8(可能还会有别的参数需要指定)

究其原因 还是因为编码格式的问题,你的李四 到数据库的前,会在myabtis做一些处理,做这些处理的时候,李四就可能不在是李四了 所以使用mybatis查询不到,但是在mysql中直接查询是查询得到的

解决方法:修改配置文件,最简单的完美修改方法,修改mysql的my.cnf文件中的字符集键值(注意配置的字段细节):

1、在[client]字段里加入default-character-set=utf8,如下:

1[client]

2port = 3306

3socket = /var/lib/mysql/mysql.sock

4default-character-set=utf8

首先把这个日志输出的sql语句 ,客户端执行一下,确定sql能查询出数据

楼主这里使用resultType="map" 返回的即是一个hashMap对象,你遍历了吗?

建议使用resultMap,自己配置一个resultMap,这样就可以把结果映射到一组实体类中


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9634322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存