MyBatis常用的小技巧

1、MyBatis使用in语句,入参为字符串或集合时的写法

1、当levels为字符串时,如:"1,2,3,4,5",使用in (${param})

<select id="xxxxxxxx" resultType="java.lang.String">
    select username from user where status = 0

    <if test="levels != null and '' != levels">
        and level in
        
        (${levels})
    </if>
</select>

2、当levels为List时,如:[1,2,3,4,5],使用in foreach遍历
<select id="xxxxxxxx" resultType="java.lang.String">
    select username from user where status = 0

    <if test="levels.size() > 0">
        and level in

        <foreach item="level" index="index" collection="levels" open="(" close=")" separator=",">
            #{level}
        </foreach>
    </if>
</select>

2、MyBatis新增insert语句执行完返回该条记录自增的ID

<insert id="xxxxxxxx" parameterType="com.example.ProductPo">
    insert into product (name, type_id, price, create_time, update_time)
    value (#{name}, #{type_id}, #{price}, #{create_time}, #{update_time})
    <selectKey keyColumn="id" keyProperty="id" resultType="java.lang.Long" order="AFTER">
        select LAST_INSERT_ID() as id
    </selectKey>
</insert>

3、MyBatis使用like concat实现模糊查询,还能防止SQL注入

<select id="fn" resultType="java.lang.Long">
    select
        id
    from
        t_xxx
    where name like concat('%', #{keyName}, '%')
    order by name
</select>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值