DaiXT:关于mybatis模糊查询为空的问题

本文介绍了在MyBatis中如何利用数据库函数和动态SQL标签进行字符串拼接,以实现对`room_name`字段的模糊查询。示例展示了在`where`子句中使用`like`操作时,`where`后的字段不应为字符串,而`like`后的条件必须是字符串。两种方法分别是使用`concat`函数和`bind`标签进行条件拼接。
摘要由CSDN通过智能技术生成

要点如下

where后的字段必须不能是字符串
like后的模糊条件 必须是字符串

1、使用数据库函数进行字符串拼接

<select id="getAllClassroomList" parameterType="classroom.pojo.query.QueryForClassroom" resultType="classroom.pojo.Classroom">
SELECT
id,room_number,room_name,room_date,room_state,room_count
FROM `e_room` r
<where>
    <if test="room_name != null and room_name != ''">
         r.room_name
         like concat('%',#{room_name},'%')
    </if>
</where>
 </select>

2、使用mybatis标签进行动态sql拼接

    <select id="getAllClassroomList" parameterType="classroom.pojo.query.QueryForClassroom" resultType="classroom.pojo.Classroom">
SELECT
id,room_number,room_name,room_date,room_state,room_count
FROM `e_room` r
<where>
    <if test="room_name != null and room_name != ''">
        <bind name="room_name" value="'%'+room_name+'%'"/>
         r.room_name
         like  #{room_name}
    </if>
</where>
 </select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值