bug场景记录

项目场景:

mapper.xml文件中sql语句执行失败,显示输入的参数数量不对

问题描述

sql 复制代码
 <select id="page" resultType="com.sky.entity.Employee">
        select * from employee
            <where>
                <if test="name != null and name !=''">
                    and name like concat('%','#{name}','%')
                </if>
            </where>
                 order by create_time desc
    </select>

xml文件出错

原因分析:

当name的输入为中文字符串时,例如 "标准" 二字会导致mybatis无法自动注入name

解决方案:

将xml文件中的sql语句修改为

sql 复制代码
 <select id="page" resultType="com.sky.entity.Employee">
        select * from employee
            <where>
                <if test="name != null and name !=''">
                    and name like concat('%',#{name},'%')
                </if>
            </where>
                 order by create_time desc
    </select>

去掉单引号即可

相关推荐
Full Stack Developme2 分钟前
正则表达式的使用教程
java·数据库·正则表达式
SeeYa-J1 小时前
Sprint 1-2:创建第一个 Spring Boot Module(user-service)
java·spring boot·sprint
云絮.1 小时前
数据库事务
java·开发语言·数据库
格子软件1 小时前
2026年GEO优化系统源码级状态机与多模型调度拆解
java·前端·vue.js·人工智能·vue·geo
Full Stack Developme2 小时前
Java 漏斗算法 及应用场景
java·开发语言·算法
从此以后自律2 小时前
Spring 全家桶
java·后端·spring
偏爱自由 !2 小时前
一(0.1):配置git
java·git·intellij-idea
骑士雄师2 小时前
java面试记录: sychonized 锁,熔断组件,分布式锁
java·开发语言·面试
SeeYa-J2 小时前
MyBatis(数据持久层,❗ “接口 = SQL执行器”)
mybatis