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

猜你喜欢

转载自blog.csdn.net/qq_42013035/article/details/107089555