MyBatis_select_resultMap_discriminator鉴别器

MyBatis可以根据discriminator鉴别器判断某列的值来改变其封装行为
现在我们来模拟场景,在封装Employee的时候:
如果查出的是女生:就把部门信息查询出来,否则不查询;
如果是男生,把last_name这一列的值赋值给emailgg;

     <resultMap type="com.atguigu.mybatis.bean.Employee" id="MyEmpDis">
        <id column="id" property="id"/>
        <result column="last_name" property="lastName"/>
        <result column="email" property="email"/>
        <result column="gender" property="gender"/>
        <!--
            column:指定判定的列名
            javaType:列值对应的java类型  -->
        <discriminator javaType="string" column="gender">
            <!--女生  resultType:指定封装的结果类型;不能缺少。/resultMap-->
            <case value="0" resultType="com.atguigu.mybatis.bean.Employee">
                <!--如果是女生,进来这里,查询部门信息-->
                <association property="dept"
                    select="com.atguigu.mybatis.dao.DepartmentMapper.getDeptById"
                    column="d_id">
                </association>
            </case>

            <!--男生 ;如果是男生,把last_name这一列的值赋值给email; -->
            <case value="1" resultType="com.atguigu.mybatis.bean.Employee">
                <!--如果是男生,进来这里,重新定义新的封装规则-->
                <id column="id" property="id"/>
                <result column="last_name" property="lastName"/>
                <result column="last_name" property="email"/>
                <result column="gender" property="gender"/>
            </case>
        </discriminator>
     </resultMap>

猜你喜欢

转载自blog.csdn.net/qq_36901488/article/details/80625111