SELECt * FROM emp
LEFT JOIN
dept
ON emp.dept_id=dept.dept_id
SELECt * FROM emp ,dept
WHERe dept.dept_id =emp.dept_id
SELECt e.id,e.name,e.age,d.dept_id,d.dept_name
FROM emp e,dept d
WHERe e.dept_id=d.dept_id
最后查询得到的结果:
EmpMapper.xml
select e.id,e.name,e.age,d.dept_id,d.dept_name
from emp e,dept d
where e.dept_id = d.dept_id
DeptMapper.xml
TestMybatis.java
@Test
public void testoneToOne(){
SqlSession sqlSession = sqlSessionFactory.openSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
List list=empMapper.findAll();
System.out.println(list);
sqlSession.close();
}
1.2 、关联查询和子查询的说明
关联查询:通过大量的SQL语句实现数据的关联查询,其中SQL语句相对复杂但是数据封装简单。
子查询:可以通过子查询的方式实现复杂的数据封装,其中SQL语句几乎都是单表查询SQL简单。
1.3 、子查询实现一对一封装
@Test
public void testOneToOne2(){
SqlSession sqlSession = sqlSessionFactory.openSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
List list=empMapper.findAllWhere();
System.out.println(list);
sqlSession.close();
}
1.4 、一对多案例
@Test
public void testoneToMore(){
SqlSession sqlSession = sqlSessionFactory.openSession();
DeptMapper deptMapper = sqlSession.getMapper(DeptMapper.class);
List list=deptMapper.findDept();
System.out.println(list);
sqlSession.close();
}
SELECT e.id,e.name,e.age,d.dept_id,d.dept_name
FROM
emp e LEFT JOIN dept d
ON e.dept_id = d.dept_id