mybatis+spring搭建web项目,输入中文参数进行where查询无法得到结果,什么原因?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

mybatis+spring搭建web项目,输入中文参数进行where查询无法得到结果,什么原因?

落地花开啦 2016-06-02 17:09:21 2254

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

SQL XML 关系型数据库 MySQL Java 数据库连接 数据库 数据格式 mybatis
分享到
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 19:25:19

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

    <if test="login_name!=null &amp;&amp; login_name.length()!=0">
                        and login_name like '%$login_name$%'
                    </if>

    改为这个试下

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程