Mysql |
您所在的位置:网站首页 › vue查询列表结果都是前四项数据为什么不一样 › Mysql |
代码接受实体类字段对应全部错误 其实这种情况严格意义上不能说是查询结果不一致,比如我们将查询出的结果集用一个 **List ** 接受,我们可能会发现这个列表的 size 是大于 0 的,但是列表中不存在任何元素,那就要考虑是否字段对应关系出现了问题,Mybatis默认使用驼峰式匹配。 查看程序中的Mysql链接字符串是否添加了编码格式 jdbc:mysql:// ${DBURL:localhost}: ${DBPORT:3306}/aaa?useUnicode=true&rewriteBatchedStatements=true&characterEncoding=utf8&serverTimezone=GMT%2B8 查看数据库的编码 show VARIABLES like 'char%' 查看 general log ,确认本地执行的语句和程序中执行的语句是否一致,并确认数据库中的数据正确性 general log 比 binlog 要轻量,开启 general log 的方法可以自行搜索,我们开启之后执行程序查询并找到我们执行的语句 我在执行后打印的日志中,有一行 SET NAMES utf8 ; 确认自己使用的SQL管理工具没有特殊设置 在按照上面第三条修改了数据库配置之后,可能发现show VARIABLES like ‘char%’,仍然和原来一样 或者正如第四条中一样,数据不是 utf8 格式的 那么就有可能是SQL管理工具在搞鬼,我是用的是 Navicat ,数据是通过 数据传输 功能从其他数据库中同步过来的。 ~ 其中数据库连接中有个配置,如下 这个地方一般不要修改,选择自动就行,就是这里不知道什么时候设置了不正确的编码导致数据同步的数据保存的格式有问题。 确认查询的结果集确实是有内容的 有一些情况下,我们会用到关联查询,比如: select b. * from a left join b on a.id =b.id where a.id=1 但是实际情况是,我们能够在 a 表中查询到相关行,但是在b表中没有该行对应的信息,也就表示我们查询的b.*中的字段全是null值。 在程序 中可能就会体现为查询到了记录,但是记录中的值都是空的。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |