zoukankan      html  css  js  c++  java
  • Mybatis模糊查询结果为空的解决方案

    写在前面

    Mybatis使用模糊查询,查询结果为空的解决方案,我的代码是

    select * from sp_user where 1=1
    <if test="username!=null">
        and username like '%'#{username}'%'
    </if>
    

    查询结果如下:

    2021-05-14 23:45:20.078 DEBUG 15620 --- [           main] c.e.s.mapper.UserMapper.selectByQuery    : ==>  Preparing: select * from sp_user where 1=1 and username like '%'?'%'
    2021-05-14 23:45:20.105 DEBUG 15620 --- [           main] c.e.s.mapper.UserMapper.selectByQuery    : ==> Parameters: ad(String)
    2021-05-14 23:45:20.130 DEBUG 15620 --- [           main] c.e.s.mapper.UserMapper.selectByQuery    : <==      Total: 0
    

    解决方案

    百度了很多,都说在数据库的url上添加useUnicode=true&characterEncoding=utf-8
    我加了,结果还是查询不到,后来试了一下CONTACT函数

            select * from sp_user where 1=1
            <if test="username!=null">
                and username like CONCAT('%',#{username},'%')
            </if>
    

    查询结果如下:

    2021-05-14 23:45:20.078 DEBUG 15620 --- [           main] c.e.s.mapper.UserMapper.selectByQuery    : ==>  Preparing: select * from sp_user where 1=1 and username like CONCAT('%',?,'%') 
    2021-05-14 23:45:20.105 DEBUG 15620 --- [           main] c.e.s.mapper.UserMapper.selectByQuery    : ==> Parameters: ad(String)
    2021-05-14 23:45:20.130 DEBUG 15620 --- [           main] c.e.s.mapper.UserMapper.selectByQuery    : <==      Total: 1
    

    我用的mybatis版本是:

            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.0.0</version>
            </dependency>
    

    希望结果对大家有用~ 共勉!

  • 相关阅读:
    with ,Row_Number,DateDiff,DateAdd用法学习
    jmeter 读取mysql数据库
    fidder 自动保存请求内容
    redis 常用方法整理
    解决:EXCEL复制粘贴,精度丢失
    MYSQL 创建常见问题
    MYSQL 存储过程、函数、临时表、游标
    MYSQL 测试常用语句使用技巧
    3-6
    selenium3 下载、配置
  • 原文地址:https://www.cnblogs.com/Fzeng/p/14770582.html
Copyright © 2011-2022 走看看