mybatis+spring搭建的web项目,在输入中文参数进行where查询时无法得到结果

发布于 2021-11-23 15:18:23 字数 1351 浏览 791 评论 11

我在用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 &amp;&amp; idcard_no.length()!=0">
	 				and idcard_no=#{idcard_no,jdbcType=VARCHAR}
	 			</if>
	 			<if test="real_name!=null &amp;&amp; real_name.length()!=0">
	 				and real_name=#{real_name,jdbcType=VARCHAR}
	 			</if>
	 			<if test="login_name!=null &amp;&amp; login_name.length()!=0">
	 				and login_name like CONCAT('%',#{login_name,jdbcType=VARCHAR},'%')
	 			</if>
	 			<if test="status!=null &amp;&amp; status.length()!=0">
	 				and status=#{status,jdbcType=VARCHAR}
	 			</if>
	 		</where>
	</select>

这是sql拦截的截图

我用的是MySQL数据库,在MySQL中直接用sql查询中文参数能出结果,而且JSP、xml、和数据库URL中都配置了utf-8参数,我用p6spy来截取sql,日志文件中显示的sql语句中中文参数也是正确显示的,请问下各位出现这种情况的原因在哪?或者有其他方法实现中文参数搜索吗?


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

顾忌 2021-11-30 10:43:05

编码的问题,之前我遇到过

滥情空心 2021-11-30 10:43:05

 select count(*) from account where and...这样就有语法错误

悲喜皆因你 2021-11-30 10:42:53

请问解决了吗问题,我也遇到这样的问题了

草莓味的萝莉 2021-11-30 10:15:04
<if test="login_name!=null && login_name.length()!=0">
    and login_name like '%${login_name}%'
</if>

归属感 2021-11-30 06:10:02
<if test="login_name!=null && login_name.length()!=0">
                    and login_name like '%$login_name$%'
                </if>

改为这个试下

因为看清所以看轻 2021-11-30 04:25:14

这个我试了,有结果

筱武穆 2021-11-29 22:29:57

把sql复制到mysql,查询以下就知道了. 有可能是字符编码的问题...

长安忆 2021-11-29 08:54:31

这个我试过了,能查出结果

凡尘雨 2021-11-28 18:32:57

直接数据库查询一下,看看有结果集否? 也许压根就没有刘德华。可能是“(空格)刘德华 ”

毁梦 2021-11-28 05:55:33

这个我也加了

泪冰清 2021-11-26 00:32:45

可能是jdbc 字符串的问题 加上 
useUnicode=true&characterEncoding=utf8 试试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文