MyBatis的discriminator鉴别器的作用

本文探讨了MyBatis中discriminator鉴别的作用,通过DepartmentMapper.xml配置示例,展示了如何进行分布查询、延迟加载以及集合操作。通过学习,你可以掌握如何在映射文件中使用discriminator来实现不同条件下的数据处理。
摘要由CSDN通过智能技术生成

MyBatis的discriminator鉴别器的作用


DepartmentMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cn.mybatis.dao.DepartmentMapper">
	<!-- public Department getDeptById(Integer id); -->
	<select id="getDeptById" resultType="com.cn.zhu.bean.Department">
		select id,dept_name
		departmentName from tbl_dept where id=#{id}
    </select>

</mapper>
EmployeeMapperPlus.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cn.mybatis.dao.EmployeeMapperPlus">

	

	
	<!-- public Employee getEmpByIdStep(Integer id); -->
	<select id="getEmpByIdStep" resultMap="MyEmpDis">
		select * from tbl_employee
		where id=#{id}
 	</select>
	<!--
		分布好处 可以使用延迟加载 Employee==>Dept 我们每次查询Employee对象的时候,都将一起查询出来。
		部门信息在我们使用的时候再去查询 分段查询的基础之上加上两个配置
	-->

	<!--
		查询二 查询部门的时候将部门对应的所有员工信息也查询出来 public List<Employee>
		getEmpsByDeptId(Integer deptId);
	-->
	
	
	<!-- public List<Employee> getEmpsByDeptId(Integer deptId); -->
	<select resultType="com.cn.zhu.bean.Employee" id="getEmpsByDeptId">
		select * from
		tbl_employee where d_id=#{deptId}
 	  </select>
	<!--
		鉴别器discriminator mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为
		封装Employee: 如果查出的是女生,就把部门信息查询出来,否则不查询 如果是男生,把last_name这一列的值赋值给email;
	-->
	<resultMap type="com.cn.zhu.bean.Employee" id="MyEmpDis">
		<id column="id" property="id" />
		<result column="last_name" property="lastName" />
		<!-- 把last_name 赋值给email -->
		<result column="email" property="email" />
		<result column="gender" property="gender" />
		<!--
			association 定义管理对象的封装规则 select: 表明当前属性是调用select 指定的方法 colum:
			指定将哪一列的值传给这个方法 流程 : 使用select 指定的方法(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值