• 使用resultMap定义查询结果集,实现关联查询


    接下来介绍resultMap定义查询结果集,实现关联查询

    1 首先在接口中定义操作的方法

    public interface EmployeeMapperPlus {

    public Employee getEmpAndDept(Integer id);

    }

    2在xml里进行配置

    <!--第一种进行配置

    联合查询:级联属性封装结果集
    -->
    <resultMap type="com.atguigu.mybatis.bean.Employee" id="MyDifEmp">
    <id column="id" property="id"/>
    <result column="last_name" property="lastName"/>
    <result column="gender" property="gender"/>
    <result column="did" property="dept.id"/>
    <result column="departmentName" property="dept.departmentName"/>
    </resultMap>


    <!--
    第二种配置使用association定义关联的单个对象的封装规则;
    -->
    <resultMap type="com.atguigu.mybatis.bean.Employee" id="MyDifEmp2">
    <id column="id" property="id"/>
    <result column="last_name" property="lastName"/>
    <result column="gender" property="gender"/>

    <!-- association可以指定联合的javaBean对象
    property="dept":指定哪个属性是联合的对象
    javaType:指定这个属性对象的类型[不能省略]
    -->
    <association property="dept" javaType="com.atguigu.mybatis.bean.Department">
    <id column="did" property="id"/>
    <result column="departmentName" property="departmentName"/>
    </association>
    </resultMap>
    <!-- public Employee getEmpAndDept(Integer id);-->
    <select id="getEmpAndDept" resultMap="MyDifEmp2">
    SELECT e.id id,e.last_name last_name,e.email email ,e.gender gender,e.did eedid,
    d.id did,d.dname departmentName FROM tbl_employee e,department d
    WHERE e.did=d.id AND e.id=#{id}
    </select>

    3在junit里进行测试

    @Test
    public void test05() throws IOException{
    SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
    SqlSession openSession = sqlSessionFactory.openSession();
    try{
    EmployeeMapperPlus mapper = openSession.getMapper(EmployeeMapperPlus.class);
    Employee empAndDept = mapper.getEmpAndDept(1);
    System.out.println(empAndDept);
    System.out.println(empAndDept.getDept());

    }finally{
    openSession.close();
    }


    }

  • 相关阅读:
    变量和值的延伸思考
    一念之想--多维数组
    java扫描控制台输入
    java字符转义
    javaee开发工具及环境配置过程
    java数组、泛型、集合在多态中的使用及对比
    flex的Accordion组件头部文本居中显示
    Visual Studio解决方案及项目的配置
    Away3D引擎学习入门笔记
    使用photoshop,把图片背景变成透明
  • 原文地址:https://www.cnblogs.com/zhangzhiqin/p/8546241.html
Copyright © 2020-2023  润新知