MyBatis框架使用接口多对一联合查询方式

Client.java

package client;

import java.io.*;
import java.util.List;
import org.apache.ibatis.io.*;
import org.apache.ibatis.session.*;
import domain.Employee;
import domain.UserMapper;

public class Client {
	public static void main(String args[]) throws IOException {
		InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		SqlSession sqlSession = factory.openSession();		
		UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
		List<Employee> list = userMapper.findAllEmployees();
		System.out.println("查询所有员工信息(使用接口多对一联合查询方式):");
		for(Employee emp:list)
			System.out.println("Employee's id: "+emp.getEmpId()+" Employee's name: "+emp.getName()+" Employee's detpId: "+emp.getDeptId()+" Employee's deptName: "+emp.getDepts().getDeptName());
		sqlSession.close();
	}
}

Department.java

package domain;

public class Department {
	private int deptId;
	private String deptName;
	public int getDeptId() {
		return deptId;
	}
	public void setDeptId(int deptId) {
		this.deptId = deptId;
	}
	public String getDeptName() {
		return deptName;
	}
	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}
}

Employee.java

package domain;

public class Employee {
	private int empId;
	private String name;
	private int deptId;
	private Department depts;
	public int getEmpId() {
		return empId;
	}
	public void setEmpId(int empId) {
		this.empId = empId;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getDeptId() {
		return deptId;
	}
	public void setDeptId(int deptId) {
		this.deptId = deptId;
	}
	public Department getDepts() {
		return depts;
	}
	public void setDepts(Department depts) {
		this.depts = depts;
	}
}

UserMapper.java

package domain;

import java.util.List;

public interface UserMapper {
	List<Employee> findAllEmployees();
}

UserMapper.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="domain.UserMapper">
	<resultMap type="domain.Employee" id="emp">
		<id property="empId" column="empId" />
		<result property="name" column="name" />
		<result property="deptId" column="deptId" />
		<association property="depts"
			javaType="domain.Department">
			<id property="id" column="id" />
			<result property="deptName" column="deptName" />
		</association>
	</resultMap>
	<select id="findAllEmployees" resultMap="emp">
		select * from
		employee,department
		where employee.deptId=department.deptId
	</select>
</mapper>

department表:
在这里插入图片描述
employee表:
在这里插入图片描述
查询结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43873198/article/details/108415134