hibernate查询方式(四)
---恢复内容开始---
1.mysql中的多表联合查询
****/*内连接查询*/ 只显示两个表有关联的记录
//第一种 SELECT * FROM Class c ,Student s WHERE c.id=s.id; //第二种 SELECT * FROM Class c INNER JOIN Student s ON c.id=s.id;
****/*左外链接*/ 显示左边那个表的所有记录和右边表的关联记录
SELECT * FROM Class c LEFT INNER JOIN Student s ON c.id=s.id;
****/*右外链接*/ 显示右边那个表的所有记录和左边表的关联记录
SELECT * FROM Class c RIGHT INNER JOIN Student s ON c.id=s.id;
hql多表联合查询
****hql内连接语句
//1.hql查询操作会使用Query对象 // (1)写sql语句 创建Query对象, String hql = "from Student c inner join c.setStudent"; //from后面是实体类名 c.学生类在班级类的属性名 Query query = session.createQuery("hql"); //(2)调用方法得到结果 返回的是数组 List list = query.list();
****hql迫切内连接
//1.hql查询操作会使用Query对象 // (1)写sql语句 创建Query对象, String hql = "from Student c inner join fetch c.setStudent"; //from后面是实体类名 c.学生类在班级类的属性名 Query query = session.createQuery("hql"); //(2)调用方法得到结果 返回的是对象 List list = query.list();
****hql左外连接
//1.hql查询操作会使用Query对象 // (1)写sql语句 创建Query对象, String hql = "from Student c left outer join c.setStudent"; //from后面是实体类名 c.学生类在班级类的属性名 Query query = session.createQuery("hql"); //(2)调用方法得到结果 返回的是数组 List list = query.list();
****hql迫切左外连接
//1.hql查询操作会使用Query对象 // (1)写sql语句 创建Query对象, String hql = "from Student c left outer join fetch c.setStudent"; //from后面是实体类名 c.学生类在班级类的属性名 Query query = session.createQuery("hql"); //(2)调用方法得到结果 返回的是对象 List list = query.list();
右外连接合左外链接一样 但是没有迫切右外连接