There are many kinds of elements in MyBatis XML, and each element has different functions and usages. The following are some commonly used MyBatis XML elements and their usage:
-
select: Execute query operation.
<select id="getUserById" parameterType="Long" resultType="User"> SELECT * FROM users WHERE id = #{id} </select>
-
insert: Perform insert operation.
<insert id="insertUser" parameterType="User"> INSERT INTO users (id, name) VALUES (#{id}, #{name}) </insert>
-
update: Update row operation.
<update id="updateUser" parameterType="User"> UPDATE users SET name = #{name} WHERE id = #{id} </update>
-
delete: Remove operation.
<delete id="deleteUser" parameterType="Long"> DELETE FROM users WHERE id = #{id} </delete>
-
if: Determine whether a SQL fragment is included based on conditions.
<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 and otherwise: Implement conditional selection logic.
<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: Used to customize the prefix and suffix of SQL fragments and add or delete them based on conditions.
<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: Used to loop through a collection or array and generate the corresponding SQL statement.
<delete id="deleteUsers" parameterType="List"> DELETE FROM users WHERE id IN <foreach collection="list" item="id" open="(" separator="," close=")"> #{id} </foreach> </delete>