首页 > 技术文章 > hibernate查询方式(四)

alex96 2018-01-06 21:00 原文

---恢复内容开始---

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();

右外连接合左外链接一样 但是没有迫切右外连接

 

推荐阅读