mybatis无法查询中文

背景:mybatis查询的时候,发现当where条件中有中文的时候,mapper接口返回的结果集为空,但是将sql语句拿到客户端工具中执行时,可以查询到结果集

问题现象描述:

1.对mapper接口进行测试时,发现返回结果集大小为0:

@Test
    public void getRecordsByFuzzySearch() throws Exception {
        List<RecordModel> recLst = trecordMapper.getRecordsByFuzzySearch("测试");

        Assert.assertTrue(recLst.size() > 0);
    }

console日志显示查询返回结果集大小为0


将sql语句拿到客户端工具(Sequel Pro或者navicat)上执行,可以查询到结果:

问题解决过程:

1.查询mysql的字符设置:发现charater_set_server为latin1


2.修改my.cnf配置,在[mysqld]节点下增加配置character-set-server=utf8:

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
 basedir = /usr/local/mysql
 datadir = /usr/local/mysql/data
# port = .....
# server_id = .....
 socket = /var/lib/mysql/mysql.sock
 character-set-server=utf8

3.重启mysql:

4.修改生效后的mysql字符设置:


5.再次执行方法,可以看到,返回结果集大小为1


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,877评论 0 4
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊阅读 18,428评论 0 85
  • 今年夏天在晚间拍摄的,广场舞大妈在这边好像还真没碰到,到是碰到了传统扇子舞和秧歌队,很是好看,不由自主的给他们拍摄...
    大红羊阅读 445评论 12 35
  • 2013.8.19 我们站在操场上,特别显眼。
    tribbie阅读 218评论 2 2
  • (一) 每个人心里都有一把锁 锁住心里的秘密 锁着难过的记忆 锁不住的心情的时候 可以大笑 可以大哭 可以默默流着...
    粤圭阅读 546评论 0 2