一、常用的标签
MyBatis 是一个持久层框架,它通过 XML 或注解配置,将 Java 对象与 SQL 语句进行映射。以下是 MyBatis 中常用的一些 XML 标签:
1、<mapper>
: 标识 MyBatis 映射器 XML 文件的根元素。
2、<select>
: 用于执行查询操作的标签,可以获取一条记录或多条记录。
3、<insert>
: 用于执行插入操作的标签,将数据插入到数据库中。
4、<update>
: 用于执行更新操作的标签,更新数据库中的数据。
5、<delete>
: 用于执行删除操作的标签,从数据库中删除数据。
6、<resultMap>
: 用于定义结果集与 Java 对象之间的映射关系,可以定义复杂的映射关系。
7、<parameterMap>
: 用于定义参数与 SQL 语句中的参数映射关系,已经被 <parameterType>
取代,不再推荐使用。
8、<sql>
: 用于定义 SQL 片段,可以在多个 SQL 语句中重复使用。
9、<include>
: 用于包含其他 SQL 片段或者外部 SQL 文件中的内容。
10、<if>
、<choose>
、<when>
、<otherwise>
: 用于在 SQL 查询中实现条件判断和分支选择。
11、<foreach>
: 用于在 SQL 查询中遍历集合或数组参数,生成多条 SQL 语句。
这些是 MyBatis 中常用的 XML 标签,通过它们可以灵活地配置 SQL 查询、映射关系和条件逻辑,完成数据库操作。
二、使用方法
1、**<mapper>
**标签
XML
<!-- userMapper.xml -->
<mapper namespace="com.example.UserMapper">
<!-- SQL语句和其他标签在这里定义 -->
</mapper>
2、<select>
标签
XML
<!-- id为mapper接口中的方法名字 -->
<select id="selectUserById" parameterType="int" resultType="User">
SELECT * FROM users WHERE id = #{id}
</select>
3、**<insert>
**标签
XML
<insert id="insertUser" parameterType="User">
INSERT INTO users (username, password) VALUES (#{username}, #{password})
</insert>
4、<update>
标签
XML
<update id="updateUser" parameterType="User">
UPDATE users SET username = #{username}, password = #{password} WHERE id = #{id}
</update>
5、**<delete>
**标签
XML
<delete id="deleteUser" parameterType="int">
DELETE FROM users WHERE id = #{id}
</delete>
6、**<resultMap>
**标签
XML
<resultMap id="userResultMap" type="User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
7、<parameterMap>
标签 (不推荐使用,可以用 <parameterType>
替代)
XML
<parameterMap id="userParameterMap" type="User">
<parameter property="id" jdbcType="INTEGER"/>
</parameterMap>
8、<sql>
标签
XML
<sql id="userColumns">
id, username, password
</sql>
9、<include>
标签
XML
<select id="selectUserWithColumns" parameterType="int" resultType="User">
SELECT <include refid="userColumns"/> FROM users WHERE id = #{id}
</select>
10、 <if>
标签
XML
<select id="selectUsersByCriteria" parameterType="Map" resultType="User">
SELECT * FROM users
<where>
<if test="username != null">
AND username = #{username}
</if>
<if test="email != null">
AND email = #{email}
</if>
</where>
</select>
11、**<choose>
、<when>
、<otherwise>
**标签
XML
<select id="selectUsersByCriteria" parameterType="Map" resultType="User">
SELECT * FROM users
<where>
<choose>
<when test="username != null">
AND username = #{username}
</when>
<when test="email != null">
AND email = #{email}
</when>
<otherwise>
<!-- 默认条件 -->
AND status = '00'
</otherwise>
</choose>
</where>
</select>
12、**<foreach>
**标签
XML
<select id="selectUsersByIdList" parameterType="List" resultType="User">
SELECT * FROM users
WHERE id IN
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
</select>