第十二章课后作业

1、MyBatis中常用的动态SQL元素有哪些?

  1. if: 条件判断元素,用于在SQL语句中添加条件判断。
    
                < select id="getUser" parameterType="int" resultType="User">
                    SELECT * FROM users
                    WHERE id = #{id}
                    < if test="username != null">
                        AND username = #{username}
                    < /if>
                < /select>
    
            
  2. choose、when、otherwise: 类似于Java中的switch语句,根据条件选择不同的分支。
    
            <select id="getUser" parameterType="int" resultType="User">
                SELECT * FROM users
                <where>
                    <choose>
                        <when test="id != null">
                            AND id = #{id}
                        <when>
                        <when test="username != null">
                            AND username = #{username}
                        <when>
                        <otherwise>
                            AND status = 'ACTIVE'
                        <otherwise>
                    <choose>
                <where>
            <select>
    
        
  3. trim: 用于处理SQL语句的前缀、后缀、和分隔符,可以根据条件自动添加或删除。
    
        <update id="updateUser" parameterType="User">
            UPDATE users
            <trim prefix="SET" suffixOverrides=",">
                <if test="username != null">
                    username = #{username},
                <if>
                <if test="password != null">
                    password = #{password},
                <if>
            <trim>
            WHERE id = #{id}
        <update>
    
        
  4. foreach: 用于迭代集合或数组,并在SQL语句中生成相应的片段。
    
            <select id="getUsersByIdList" parameterType="List" resultType="User">
                SELECT * FROM users
                WHERE id IN
                <foreach collection="idList" item="id" open="(" separator="," close=")">
                    #{id}
                <foreach>
            <select>
    
        
  5. set: 用于动态更新语句中的SET子句,根据条件自动添加更新项。
    
            <update id="updateUser" parameterType="User">
                UPDATE users
                <set>
                    <if test="username != null">
                        username = #{username},
                    <if>
                    <if test="password != null">
                        password = #{password},
                   <if>
                <set>
                WHERE id = #{id}
            <update>
    

2、MyBatis动态SQL元素中的if,choose,when oterwise如何使用

在MyBatis中,if、choose、when 和 otherwise 这些动态SQL元素用于构建具有条件判断的SQL语句,以便在不同的情况下生成不同的SQL片段。
  1. if 元素 if 元素用于在SQL语句中添加条件判断。
    
        <elect id="getUser" parameterType="int" resultType="User">
            SELECT * FROM users
            WHERE id = #{id}
            <if test="username != null">
                AND username = #{username}
            <if>
        <select>
            
  2. choose、when 和 otherwise 元素 choose、when 和 otherwise 用于在多个条件中选择一个分支。
    
            <select id="getUser" parameterType="int" resultType="User">
                SELECT * FROM users
                <where>
                    <choose>
                        <when test="id != null">
                            AND id = #{id}
                        <when>
                        <when test="username != null">
                            AND username = #{username}
                        <when>
                        <otherwise>
                            AND status = 'ACTIVE'
                        <otherwise>
                    <choose>
                <where>
            <select>
    
            
下一章作业