mybatis查询传入中文参数不能查询结果(乱码导致)

彩笔 发布于 2014/08/31 13:25
阅读 16K+
收藏 1

       MyBatis版本3.1.1,环境SpringMVC+MyBatis+Spring,数据库用的是MySQL,用debug模式,打印查询语句,后台正常打印出语句如:select * from tatleA where username = '用户名',有数据却查不到结果。开启了mysql的文件日志后,发现日志里输出的是select * from tatleA where username = '??'。

       原因就是出现在乱码问题上,url上的utf-8已经加上"jdbc.url= jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8"。

       还要在哪里设置才可以根据中文参数查询结果,求大神解答一下!

加载中
1
0-1
0-1
select 前加一句"set names utf8;"
土豆-地瓜
土豆-地瓜
你传过来的就是乱码吧
彩笔
彩笔
能举个语句的例子么?谢谢!
0
厦门王五
厦门王五
日志输出带引号?你是不是自己在mybatis mapping的sql里面给条件加引号了?
0
厦门王五
厦门王五
还是说xml文件utf-8有问题?
0
xdev
xdev

xml文件编码为utf-8,保存的时候文件编码也应该是utf-8一致,如果还有问题,使用cdata块,比如:

<insert id="insertUser" type="org.my.domian.User">

    <![CDATA[               insert into table .... (?,?..,?)        ]]>

</insert>

xdev
xdev
sql中的大于号,小于号什么的,经常和xml的<>冲突,所以使用cdata块解决
0
loyal
loyal

你要确定是数据库编码或链接编码问题还是你web的编码问题


0
Ever_
Ever_
是数据库编码问题,数据库不是utf-8
0
紫川云
紫川云

保证所有编码格式一致!!!

1.容器设置为utf8,如tomcat:URIEncoding="UTF-8"(针对以get方式提交数据到后台)

2.前端页面编码utf-8 如content-type等;IDE设置文件编码为utf8

3.springMVC配置在web.xml中的过滤器。。。

4.MySQL数据库、表、字段等等建立用的是 utf8编码,连接字符串指定utf8。

PS:就这些吧,看看楼下怎么说

0
javacc
javacc
问题解决了吗?
0
yuwei_--
yuwei_--
请问问题怎么解决的,我的也是在controller里面是正常的,但是在mybatis的日志里面就是乱码, Parameters: 浣�浼�(String), 55555(String) 
返回顶部
顶部