根据条件动态生成SQL语句
<select id="findByCondition" resultType="User">
SELECT * FROM users
WHERE 1=1
<if test="username != null">
AND username LIKE CONCAT('%', #{username}, '%')
</if>
<if test="age != null">
AND age = #{age}
</if>
</select><select id="findByCondition" resultType="User">
SELECT * FROM users
<where>
<if test="username != null">
AND username LIKE CONCAT('%', #{username}, '%')
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select><select id="findByCondition" resultType="User">
SELECT * FROM users
<where>
<choose>
<when test="username != null">
username = #{username}
</when>
<when test="email != null">
email = #{email}
</when>
<otherwise>
age > 18
</otherwise>
</choose>
</where>
</select><!-- 批量删除 -->
<delete id="deleteByIds">
DELETE FROM users WHERE id IN
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
<!-- 批量插入 -->
<insert id="batchInsert">
INSERT INTO users(username, email, age) VALUES
<foreach collection="users" item="user" separator=",">
(#{user.username}, #{user.email}, #{user.age})
</foreach>
</insert><update id="updateSelective">
UPDATE users
<set>
<if test="username != null">username = #{username},</if>
<if test="email != null">email = #{email},</if>
<if test="age != null">age = #{age},</if>
</set>
WHERE id = #{id}
</update>