当前位置: 代码迷 >> 综合 >> MyBatis_MyBatis之查询结果映射resultMap_discriminator(鉴别器)
  详细解决方案

MyBatis_MyBatis之查询结果映射resultMap_discriminator(鉴别器)

热度:13   发布时间:2024-02-05 15:43:29.0

1.引入

   上面我们分别说了对单个对象、Colection的一个封装,那么下面,我们说一个对参数传递的一个分类discriminator。mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为。

2.使用测试

功能需求:封装Employee: 如果查出的是女生:就把部门信息查询出来,否则不查询;如果是男生,把last_name这一列的值赋值给email;

(1).映射文件信息配置

<!-- <discriminator javaType=""></discriminator>鉴别器:mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为封装Employee:如果查出的是女生:就把部门信息查询出来,否则不查询;如果是男生,把last_name这一列的值赋值给email;--><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>

 

 

  相关解决方案