mybatis+spring搭建的web项目,在输入中文参数进行where查询时无法得到结果
我在用spring+mybatis开发时,有一个页面需要进行搜索,并且是中文参数,我是用mybatis的where标签进行查询,具体代码如下:
<select id="accountRows" parameterType="com.future.entity.page.AccountPage" resultType="Integer"> select count(*) from account <where> <if test="idcard_no!=null && idcard_no.length()!=0"> and idcard_no=#{idcard_no,jdbcType=VARCHAR} </if> <if test="real_name!=null && real_name.length()!=0"> and real_name=#{real_name,jdbcType=VARCHAR} </if> <if test="login_name!=null && login_name.length()!=0"> and login_name like CONCAT('%',#{login_name,jdbcType=VARCHAR},'%') </if> <if test="status!=null && status.length()!=0"> and status=#{status,jdbcType=VARCHAR} </if> </where> </select>
这是sql拦截的截图
我用的是MySQL数据库,在MySQL中直接用sql查询中文参数能出结果,而且JSP、xml、和数据库URL中都配置了utf-8参数,我用p6spy来截取sql,日志文件中显示的sql语句中中文参数也是正确显示的,请问下各位出现这种情况的原因在哪?或者有其他方法实现中文参数搜索吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
编码的问题,之前我遇到过
select count(*) from account where and...这样就有语法错误
请问解决了吗问题,我也遇到这样的问题了
改为这个试下
这个我试了,有结果
把sql复制到mysql,查询以下就知道了. 有可能是字符编码的问题...
这个我试过了,能查出结果
直接数据库查询一下,看看有结果集否? 也许压根就没有刘德华。可能是“(空格)刘德华 ”
这个我也加了
可能是jdbc 字符串的问题 加上
useUnicode=true&characterEncoding=utf8 试试