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表:
查询结果: