保存一个部门和两个员工,且这两个员工都是这个部门的。
Department 实体类
package com.yy.domain;
@Setter
@Getter
@ToString
public class Department {
private Long id;
private String name;
}
Employee 实体类
package com.yy.domain;
@Setter
@Getter
@ToString
public class Employee {
private Long id;
private String name;
// 关联属性
private Department dept;
}
注意: Mapper XML 放置的位置是在 resources 目录下。
DepartmentMapper 接口
package com.yy.mapper;
public interface DepartmentMapper {
void save(Department dept);
}
DepartmentMapper.xml 文件
EmployeeMapper 接口
package com.yy.mapper;
public interface EmployeeMapper {
void save(Employee employee);
}
EmployeeMapper.xml 文件
public class Many2oneTest {
// 保存一个部门和两个员工,且这两个员工都是这个部门的
@Test
public void testSave() throws Exception {
Department dept = new Department();
dept.setName("开发部");
Employee e1 = new Employee();
e1.setName("张三");
e1.setDept(dept);
// 设置关系
Employee e2 = new Employee();
e2.setName("李四");
e2.setDept(dept);
// 设置关系
SqlSession session = MyBatisUtil.getSession();
DepartmentMapper departmentMapper = session.getMapper(DepartmentMapper.class);
EmployeeMapper employeeMapper = session.getMapper(EmployeeMapper.class);
// 先保存部门再保存员工
departmentMapper.save(dept);
employeeMapper.save(e1);
employeeMapper.save(e2);
session.commit();
session.close();
}
}
根据员工 id 查询员工,并知道该员工的所在的部门。
DepartmentMapper 接口
package com.yy.mapper;
public interface DepartmentMapper {
Department get(Long id);
}
DepartmentMapper.xml 文件
EmployeeMapper 接口
package com.yy.mapper;
public interface EmployeeMapper {
Employee get(Long id);
}
EmployeeMapper.xml 文件
public class Many2oneTest {
@Test
public void testGet() throws Exception {
SqlSession session = MyBatisUtil.getSession();
EmployeeMapper employeeMapper = session.getMapper(EmployeeMapper.class);
Employee employee = employeeMapper.get(1L);
System.out.println(employee); session.close();
}
}
以上就是使用 Mybatis 多表实现多对一查询、添加操作了,代码仅供参考,欢迎讨论交流。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章