Mybatis标签语法大全

Mybatis标签语法大全 ,更多用法请参照:https://baomidou.gitee.io/mybatis-plus-doc/#/quick-start

  1. <sql>

    • 在配置文件中定义可复用的 SQL 片段,便于在其他查询语句中引用:
      <sql id="userColumns">id, username, password</sql>
      ...
      <select id="selectAllUsers" resultType="com.example.model.User">
        SELECT <include refid="userColumns"/> FROM users
      </select>
      
  2. <select/>, <insert/>, <update/>, <delete/>

    • 这些标签在映射文件中分别用来定义 SQL 查询、插入、更新和删除操作,以及它们的执行逻辑和结果映射:
      <select id="getUserById" parameterType="int" resultType="com.example.model.User">
        SELECT * FROM users WHERE id = #{id}
      </select>
      
      <insert id="insertUser" parameterType="com.example.model.User">
        INSERT INTO users(username, password)
        VALUES(#{username}, #{password})
      </insert>
      
  3. <if>, <choose>, <when>, <otherwise>, <where>, <set>, <foreach>

    • 动态 SQL 标签使得 SQL 语句可以根据参数动态构建:
      <!-- 使用 if 条件判断 -->
      <select id="selectUsersWithConditions" parameterType="map">
        SELECT * FROM users as users
        <where>
          <if test="param.id != null">AND users.id = #{param.id}</if>
            <if test="param.userName !=null and param.userName != ''">
             AND users.user_name LIKE CONCAT('%',#{param.userName},'%')
         </if>
      
    and users.id in (#{id})
 ```xml
    <!-- 使用 foreach 循环遍历集合参数 -->
    <insert id="batchInsertUsers">
      INSERT INTO users(username, email)
      VALUES
      <foreach item="user" index="index" collection="list" open="(" separator="),(" close=")">
        #{user.username}, #{user.email}
      </foreach>
    </insert>
    ```
```xml

<!-- 使用 choose when 判断 -->
<if test="param.regType !=null and param.regType != ''">
   <choose>
   <when test="param.regType == 'weixin'">
       and users.reg_type = 'weixin'
   </when>
   <when test="param.regType == 'app'">
      and users.reg_type ='app'
   </when>
    <otherwise>
       and users.reg_type = 'other'
   </otherwise>
   </choose>
</if>

原文链接 https://www.hanyuanhun.cn | https://node.hanyuanhun.cn

posted @   汉源魂  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示