• 使用mybatis从mysql里进行模糊查询的编码问题


    关于这个问题,记录下我的解决方法,希望对有同样困惑的朋友,有所帮助。

    问题描述:

      我在做mybatis从mysql里模糊查询时,如果模糊的关键词是字母的话,可以查出来。如果模糊的关键词是汉字的话,查不出来。字母可以汉字却不可以,问题肯定出在编码上,可是是哪一块的编码呢?

      a、workspace:我设置的是utf-8,此能保证我这个页面的字符编码是u8格式,跟它无关。

      b、url链接上:这是我的链接地址:<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>,我的sql语句是由url地址请求去跟mysql会话,肯定是在这个过程中字

    符转换除了问题。所以要么是url的问题,要么是mysql中字符编码问题。

    处理过程也就分为2个思路:

      1、改url地址:

      很多博客说在url末尾加上字符编码:

      CharSet=utf8",即url改成:<property name="url" value="jdbc:mysql://localhost:3306/mybatis?CharSet=utf8"/>;

      或

      useUnicode=true&ampcharacterEncoding=UTF-8,即<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8"/>,

      两种试了都不行。

      针对“度友”此处加字符编码我的理解是:将查询语句使用UTF8格式的编码发送到服务器上。但问题是以u8格式发送到mysql后,mysql还是没有正确拿到我传递过去的汉字,进

    而去数据库里模糊查询,或者说mysql翻译错了,查了没查出来。

      2、改mysql中的字符编码:

      在此推荐一篇博文:https://www.cnblogs.com/henw/p/3874050.html,对mysql的编解码讲述很详细。

      我改了下图所示中的这些编码为u8,问题解决了。

           

      具体操作,在my.ini文件中(D:Program FilesMySQLMySQL Server 5.5),找到一下红色标记,加入相应字符编码,如果有更改就ok。

      [client]

      default-character-set=utf8

      [mysql]

      default-character-set=utf8

      [mysqld]

      character-set-server=utf8

    Best Regards
  • 相关阅读:
    游戏开发系统功能(9)
    游戏开发创建游戏世界(8)
    游戏开发沟通和开会技巧(7)
    游戏开发策划工作(6)
    游戏开发了解测试工作(4)
    Django:学习笔记(9)——用户身份认证
    Django:学习笔记(8)——视图
    Django:学习笔记(7)——模型进阶
    Django:学习笔记(6)——模型
    Django:学习笔记(5)——会话
  • 原文地址:https://www.cnblogs.com/pecool/p/8073954.html
Copyright © 2020-2023  润新知