Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1182字,纯文字阅读大概需要2分钟。
内容图文
![Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm](/upload/InfoBanner/zyjiaocheng/1192/3d1226791ac446289f13b13ff422ae31.jpg)
项目开发中,在做Mybatis动态查询时,遇到了一个问题:MySQL在进行LIKE模糊查询时,输入英文可以正常检索出结果,但是输入中文后检索得到的结果为空。
由于是使用GET方式请求,所以为了确保中文不乱码,在控制台接收到请求参数后,对中文进行了一次编码。
1
2
3
4
5
|
try
{
realName =
new
String(realName.getBytes(
"GBK"
),
"UTF-8"
);
}
catch
(UnsupportedEncodingException exception) {
logger.error(
"realName在进行UTF-8编码时出错,"
+ exception.toString());
}
|
Mybatis动态SQL映射,具体的SQL如下:
首先使用模糊查询检索英文。启动项目,输入英文“test”,按照英文内容检索得到的结果如下图:
我们可以看到SQL正常执行,使用“test”总共检索出2条结果,数据库中对应字段的内容分别是张三test02和张三test,正常来说,如果我们输入中文“张”也可以查询到这两条数据,下面试试使用模糊查询检索中文。启动项目,输入中文“张”,检索得到结果如下图:
我们可以看到这里检索出的结果是0条记录,并且条件的中文内容没有乱码,和预想中的并不一样。复制同样的SQL语句到SQLyog中执行是可以正常检索出结果的。
在使用SQLServer时并没有出现过这样的问题,这次使用MySQL才出现这种情况,怀疑是在Mybatis配置数据源environment时SQLServer和MySQL配置的内容有差异,仔细对比并上网查阅相关内容后发现,MySQL在进行中文检索时,需要在jdbcURL后增加参数useUnicode=true&characterEncoding=UTF-8来指定编码格式。
完整的URL:
jdbc:mysql://127.0.0.1:3306/fanyl_web?useUnicode=true&characterEncoding=UTF-8
在修改了MySQL的jdbcURL后,启动项目,继续输入中文“张”,检索得到结果如下:
总共检索出3条结果,至此Mybatis使用MySQL进行模糊查询时输入中文检索不到结果的问题就解决了。
原文:http://www.cnblogs.com/shenxiaoquan/p/6731338.html
内容总结
以上是互联网集市为您收集整理的Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm全部内容,希望文章能够帮你解决Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。