首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mybatis动态sql列表

MyBatis是一种Java持久层框架,它提供了一种简化数据库访问的方式。动态SQL是MyBatis的一个重要特性,它允许在SQL语句中根据不同的条件动态地拼接SQL片段,从而实现灵活的查询。

动态SQL列表是指在MyBatis中使用动态SQL时可以使用的一些标签和函数。以下是常用的动态SQL列表:

  1. <if>标签:用于条件判断,可以根据条件动态拼接SQL语句。示例代码如下:
代码语言:txt
复制
<select id="getUserList" resultType="User">
  SELECT * FROM user
  <where>
    <if test="name != null">
      AND name = #{name}
    </if>
    <if test="age != null">
      AND age = #{age}
    </if>
  </where>
</select>

在上述示例中,如果传入的参数中name不为null,则会拼接AND name = #{name}到SQL语句中。

  1. <choose><when><otherwise>标签:用于多条件判断,类似于Java中的switch语句。示例代码如下:
代码语言:txt
复制
<select id="getUserList" resultType="User">
  SELECT * FROM user
  <where>
    <choose>
      <when test="name != null">
        AND name = #{name}
      </when>
      <when test="age != null">
        AND age = #{age}
      </when>
      <otherwise>
        AND status = 1
      </otherwise>
    </choose>
  </where>
</select>

在上述示例中,如果传入的参数中name不为null,则会拼接AND name = #{name}到SQL语句中;如果name为null且age不为null,则会拼接AND age = #{age};否则会拼接AND status = 1

  1. <foreach>标签:用于遍历集合或数组,并将集合或数组中的元素拼接到SQL语句中。示例代码如下:
代码语言:txt
复制
<select id="getUserList" resultType="User">
  SELECT * FROM user
  <where>
    <foreach collection="ids" item="id" separator="OR">
      id = #{id}
    </foreach>
  </where>
</select>

在上述示例中,如果传入的参数中ids是一个包含多个id的集合或数组,则会将每个id拼接到SQL语句中,并使用OR作为分隔符。

  1. <trim>标签:用于去除SQL语句中多余的逗号、AND、OR等字符。示例代码如下:
代码语言:txt
复制
<select id="getUserList" resultType="User">
  SELECT * FROM user
  <where>
    <trim prefix="AND" prefixOverrides="OR">
      <if test="name != null">
        OR name = #{name}
      </if>
      <if test="age != null">
        OR age = #{age}
      </if>
    </trim>
  </where>
</select>

在上述示例中,如果传入的参数中name不为null,则会拼接OR name = #{name}到SQL语句中;如果name为null且age不为null,则会拼接OR age = #{age};最终会去除开头的多余的OR

这些是MyBatis动态SQL的常用标签和函数,通过灵活使用它们,可以根据不同的条件生成不同的SQL语句,从而实现更加灵活和可复用的数据库访问。在使用MyBatis时,可以参考腾讯云的云数据库MySQL产品(https://cloud.tencent.com/product/cdb)来提供稳定可靠的数据库服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • mybatis学习笔记之基础框架(2)

    mybatis学习笔记之基础框架(2) mybatis是一个持久层的框架,是apache下的顶级项目。 mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足sql语句 mybatis可将向prparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射) SqlMapConfig.xml(是mybatis的全局配置文件,名称不固定) 配置了数据源/事务等mybatis运行环境 配置映射文件(配置sql语句) mapper.xml(映射文件)/mapper.xml/mapper.xml SqlSessionFactory(会话工厂) 作用:创建SqlSesion SqlSession(会话,是一个接口,面向用户程序员的接口) 作用:操作数据库(发出sql增删改查) Executor(执行器,是一个接口(基本执行器/缓存执行器)) 作用:SqlSes内部通过执行器操作数据库

    03
    领券