MyBatis XML 中的元素有很多种,每个元素都有不同的作用和用法。以下是一些常用的 MyBatis XML 元素及其用法:
-
select:执行查询操作。
<select id="getUserById" parameterType="Long" resultType="User"> SELECT * FROM users WHERE id = #{id} </select>
-
insert:执行插入操作。
<insert id="insertUser" parameterType="User"> INSERT INTO users (id, name) VALUES (#{id}, #{name}) </insert>
-
update:执行更新操作。
<update id="updateUser" parameterType="User"> UPDATE users SET name = #{name} WHERE id = #{id} </update>
-
delete:执行删除操作。
<delete id="deleteUser" parameterType="Long"> DELETE FROM users WHERE id = #{id} </delete>
-
if:根据条件判断是否包含某个 SQL 片段。
<select id="getUsersByNameAndAge" parameterType="map" resultType="User"> SELECT * FROM users WHERE 1=1 <if test="name != null"> AND name = #{name}</if> <if test="age != null"> AND age = #{age}</if> </select>
-
choose、when 和 otherwise:实现条件选择逻辑。
<select id="getUsersByCondition" parameterType="map" resultType="User"> SELECT * FROM users WHERE 1=1 <choose> <when test="name != null"> AND name = #{name}</when> <when test="age != null"> AND age = #{age}</when> <otherwise> AND status = 'ACTIVE'</otherwise> </choose> </select>
-
trim:用于定制 SQL 片段的前缀和后缀,并根据条件进行添加或删除。
<select id="getUsersByCondition" parameterType="map" resultType="User"> SELECT * FROM users WHERE 1=1 <trim prefix="AND" prefixOverrides="OR"> <if test="name != null"> OR name = #{name}</if> <if test="age != null"> OR age = #{age}</if> </trim> </select>
-
foreach:用于循环遍历集合或数组,并生成对应的 SQL 语句。
<delete id="deleteUsers" parameterType="List"> DELETE FROM users WHERE id IN <foreach collection="list" item="id" open="(" separator="," close=")"> #{id} </foreach> </delete>