MyBatis常用的小技巧

简介: 这篇文章分享了MyBatis中的一些常用技巧,包括使用`in`语句处理字符串或集合参数、在`insert`语句后获取自增ID,以及使用`like concat`进行模糊查询以防止SQL注入。

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>
目录
相关文章
|
7月前
|
SQL Java 数据库连接
|
Java 数据库连接 mybatis
|
SQL 算法 Java
Mybatis-plus超详细讲解(2022)
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
3687 1
|
5月前
|
SQL 算法 Java
MyBatis-Plus详解(3)
MyBatis-Plus详解(3)
73 0
|
7月前
|
SQL 缓存 Java
浅谈mybatis
浅谈mybatis
32 1
|
Java 数据库连接 数据库
Mybatis及Mybatis-Plus使用
Mybatis及Mybatis-Plus使用
772 2
Mybatis及Mybatis-Plus使用
|
SQL Java 数据库连接
14MyBatis - MyBatis介绍
14MyBatis - MyBatis介绍
45 0
|
SQL Java 数据库连接
Mybatis Plus
Mybatis Plus
105 0
|
SQL XML 算法
MyBatis-Plus
简称MP,是在Mybatis的基础上进行增强,用户简化开发,提高效率。只做增强不做改变 支持主键自动生成、内置代码生成器、内置分页插件
121 0
|
SQL Java 关系型数据库
下一篇
DataWorks