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>
AI 代码解读

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>
AI 代码解读

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>
AI 代码解读
目录
相关文章
Mybatis之discriminator(鉴别器)详解
前言 最近干了一个工作是使用discriminator去写一个新的API,那么写这个新的API原因是什么呢?原因是这样的:我们的项目使用Mybatis,我们项目中有一个实体类叫做User,在User中还含有很多别的实体类,例如Role,Permission,Address等(有经验的肯定知道这种嵌套实体类的情况,使用和)。
4195 0
|
4月前
|
Mybatis知识
Mybatis知识
49 0
MyBatis
MyBatis
50 2
MyBatis-Plus详解(4)
MyBatis-Plus详解(4)
60 0
Mybatis(四)
Mybatis(四)
51 0
MyBatis-Plus详解(1)
MyBatis-Plus详解(1)
68 0
MyBatis-Plus详细介绍
MyBatis-Plus是基于MyBatis框架的增强工具,致力于简化MyBatis的开发。它提供了一系列的增强功能,包括代码生成器、分页查询、性能分析等,大大提高了开发效率。
95 0
从0开始回顾Mybatis
Mybatis 1、什么是Mybatis? 概念: 1. Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。 2. MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 缺点: 1. SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等