mybatis的resultMap属性----discriminator
程序员文章站
2022-04-21 23:51:34
...
<!-- =======================鉴别器============================ -->
<!-- <discriminator javaType=""></discriminator>
鉴别器:mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为
封装Employee:
如果查出的是女生:就把部门信息查询出来,否则不查询;
如果是男生,把last_name这一列的值赋值给email;
-->
<resultMap type="com.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.mybatis.dao.DepartmentMapper.getDeptById"
column="d_id">
</association>
</case>
<!--男生 ;如果是男生,把last_name这一列的值赋值给email; -->
<case value="1" resultType="com.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>
推荐阅读
-
Mybatis中强大的resultMap功能介绍
-
关于MyBatis 查询数据时属性中多对一的问题(多条数据对应一条数据)
-
MyBatis查询时属性名和字段名不一致问题的解决方法
-
Mybatis之ResultMap的使用详解
-
ssm框架集成时,在spring配置文文件中集成mybatis时,在sqlSessionFactory中的属性configuration配置日志出错
-
Mybatis解决属性名和字段名不一致的问题
-
Mybatis入门学习---解决属性名和列名不一致的问题
-
mybatis源码学习------resultMap和sql片段的解析
-
Mybatis的resultMap中各个标签解释
-
MyBatis学习2之解决字段名与实体类属性名不相同的冲突