关于mybatis只能查询英文,不能查询中文的问题

版权声明:欢迎转载。 https://blog.csdn.net/a791123503/article/details/53485694

近日使用mybatis做项目的时候碰到的问题,使用mybatis对数据进行模糊查询的时候,只能查询英文,而不能查询中文,即:输入参数为英文就成功,中文就查询不到结果。

在网上查了许多资料,总结下来就是以下几种情况:

问题一:

jsp页面,项目的properties,配置文件,数据库等的编码格式是否统一都为UTF-8。

解决方法:修改各文件编码格式,统一为UTF-8

问题二:

数据库安装后,编码没设置。

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

1、在[client]字段里加入default-character-set=utf8,如下:
1
[client]
2
port = 3306
3
socket = /var/lib/mysql/mysql.sock
4
default-character-set=utf8


2、在[mysqld]字段里加入character-set-server=utf8,如下:
1
[mysqld]
2
port = 3306
3
socket = /var/lib/mysql/mysql.sock
4
character-set-server=utf8


3、在[mysql]字段里加入default-character-set=utf8,如下:
1
[mysql]
2
no-auto-rehash
3
default-character-set=utf8
修改完成后,service mysql restart重启mysql服务就生效。

再一查询OK了

问题三:

数据源在配置时,编码转换格式配置出错。

解决办法:

修改mybatis配置文件中配置数据源模块:

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

这里需要注意,一般时候,我们都习惯写成<property name="url" value="jdbc:mysql://localhost:3306/cloth?useUnicode=true&characterEncoding=UTF-8"/>,但是在XML文件中,它的编码规则决定要这么变换。

在xml文件中有以下几类字符要进行转义替换:

&lt;

<

小于号

&gt;

>

大于号

&amp;

&

&apos;

'

单引号

&quot;

"

双引号


展开阅读全文

没有更多推荐了,返回首页