Mybatis的Mapper映射文件中常用标签

MyBatis 是一个 Java 语言的持久层框架,它支持自定义 SQL 查询、存储过程以及高级映射。MyBatis 简化了 JDBC 的繁琐操作,如手动设置参数或者获取结果集。MyBatis 可以使用 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。

MyBatis 支持多种 SQL 标签,以下是一些主要的 SQL 标签:
1.<select>:用于执行查询语句,获取数据。例如:
<select id="selectUserById" parameterType="int" resultType="com.example.User"> SELECT * FROM user WHERE id = #{id} </select>

2.<insert>:用于执行插入语句。
<insert id="insertUser" parameterType="com.example.User"> INSERT INTO user(name, age) VALUES(#{name}, #{age}) </insert>

3.<update>:用于执行更新语句。
<update id="updateUser" parameterType="com.example.User"> UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id} </update>

4.<delete>:用于执行删除语句。
<delete id="deleteUser" parameterType="int"> DELETE FROM user WHERE id = #{id} </delete>

5.<resultMap>:用于定义复杂的结果集映射,可以映射到自定义的 Java 类型。
<resultMap id="UserResultMap" type="com.example.User"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> </resultMap>

6.<parameterMap>:用于定义参数映射,可以映射到自定义的 Java 类型。
<parameterMap type="com.example.User"> <parameter name="id" property="id"/> <parameter name="name" property="name"/> <parameter name="age" property="age"/> </parameterMap>

7.<sql>:用于定义可重用的 SQL 代码片段,可以被多个 标签引用。
<sql id="userColumns"> id, name, age </sql>

8.<foreach>标签:该标签的作用是遍历集合类型的条件
foreach元素的属性主要有 item,index,collection,open,separator,close。
item表示集合中每一个元素进行迭代时的别名.
index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.
open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.
close表示以什么结束
<delete id="deleteByPriKeys" parameterType="java.lang.String"> delete from product where product_Id in <foreach collection="list" item="productId" open="(" separator="," close=")"> #{productId,jdbcType = VARCHAR} </foreach> </delete>

9.<if>:条件判断标签,根据表达式的结果执行不同的 SQL 逻辑。
<if test="condition != null"> AND condition = #{condition} </if>

10.<choose><when><otherwise>:用于实现多条件分支逻辑。
<choose> <when test="type == 'A'"> SELECT * FROM A </when> <when test="type == 'B'"> SELECT * FROM B </when> <otherwise> SELECT * FROM C </otherwise> </choose>

11.<bind>:用于将变量绑定到SQL语句中,提高SQL语句的安全性。
12.<trim>:用于动态地生成SQL前缀和后缀,支持添加或去除前缀/后缀字符串。
13.<include>:用于包含其他SQL片段或配置,支持嵌套使用。
14.<dynamic>:用于动态生成SQL语句,根据条件自动添加或删除部分语句。
15.<selectKey>:用于执行特定的插入或更新操作后执行的SQL语句,通常用于获取自增ID。
16.<cache>:用于实现查询结果的缓存机制,提高应用性能。

posted @ 2024-10-14 20:08  loong3  阅读(18)  评论(0编辑  收藏  举报