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 代码片段,可以被多个
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>
:用于实现查询结果的缓存机制,提高应用性能。