mybatis第一期:在一个mapper.xml中引用另一个mapper.xml的数据 (「sql」 「resultMap」复用)
1.<sql>数据复用
<?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.swing.sky.common.basic.BasicDAO"> <sql id="dept"> sys_dept.id, sys_dept.parent_id, sys_dept.dept_name, sys_dept.leader, sys_dept.phone, sys_dept.email, sys_dept.is_use, sys_dept.order_num, sys_dept.create_by, sys_dept.create_time, sys_dept.update_by, sys_dept.update_time, sys_dept.remark </sql> </mapper>
在另一个mapper.xml中使用:
<sql id="two_Base_Column_List"> <include refid="com.swing.sky.common.basic.BasicDAO.dept"/> </sql>
2.<resultMap>复用
这个其实有个便捷的办法,如下:
<resultMap id="two_BaseResultMap" extends="com.swing.sky.web.system.dao.SysDeptDAO.BaseResultMap" type="com.swing.sky.web.system.domain.SysDeptDO"> </resultMap>
该标签为我们提供了一个 extends 属性,可见秉持了Java 的封装继承多态的思想
声明一个坑:
如果出现无法找到引用的错误,从一下几个原因分析一下:
1.你忘记配置引用Dao的包扫描地址(@MapperScan)
2.如果你的Dao方法名为 XXX.java 那么,你的mapper配置名必须为 XXX.xml