01.搭建开发环境

02.连接查询

package com.gordon.test;

import java.util.Arrays;
import java.util.List; import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test; import com.gordon.domain.Book;
import com.gordon.domain.Publisher;
import com.gordon.utils.HibernateUtil; /**
* 连接查询
* @author Administrator
*/
public class TestDemo5 { /**
* 连接查询-右外连接
* 查询结果
Hibernate:
select
book0_.id as id1_0_0_,
publisher1_.id as id1_1_1_,
book0_.name as name2_0_0_,
book0_.price as price3_0_0_,
book0_.publisher_id as publishe4_0_0_,
publisher1_.name as name2_1_1_
from
t_book book0_
left outer join
t_publisher publisher1_
on book0_.publisher_id=publisher1_.id
云计算技术及性能优化
---电子工业出版社
C语言程序设计
---电子工业出版社
中国冰雪梦
---电子工业出版社
Photoshop图形图像处理
---北京大学出版社
VisualBasic2015实践教程
---北京大学出版社
生产微服务
---人民邮电出版社
架构探险:轻量级微服务架构(下册)
---人民邮电出版社
*/
@Test
public void run4() {
Session session = HibernateUtil.getCurrentSession();
Transaction transaction = session.beginTransaction(); String hql = "from Book b right join b.publisher p";
Query query = session.createQuery(hql); Book b = null;
Publisher p = null; List<Object[]> list = query.list();
for (Object[] book : list) { b = (Book) book[0];
p = (Publisher) book[1]; System.out.println(b.getName());
System.out.println("---" + p.getName());
} transaction.commit();
} /**
* 连接查询-左外连接
* 查询结果
Hibernate:
select
book0_.id as id1_0_0_,
publisher1_.id as id1_1_1_,
book0_.name as name2_0_0_,
book0_.price as price3_0_0_,
book0_.publisher_id as publishe4_0_0_,
publisher1_.name as name2_1_1_
from
t_book book0_
left outer join
t_publisher publisher1_
on book0_.publisher_id=publisher1_.id
云计算技术及性能优化
---电子工业出版社
C语言程序设计
---电子工业出版社
中国冰雪梦
---电子工业出版社
Photoshop图形图像处理
---北京大学出版社
VisualBasic2015实践教程
---北京大学出版社
生产微服务
---人民邮电出版社
架构探险:轻量级微服务架构(下册)
---人民邮电出版社
*/
@Test
public void run3() {
Session session = HibernateUtil.getCurrentSession();
Transaction transaction = session.beginTransaction(); String hql = "from Book b left join b.publisher p";
Query query = session.createQuery(hql); Book b = null;
Publisher p = null; List<Object[]> list = query.list();
for (Object[] book : list) { b = (Book) book[0];
p = (Publisher) book[1]; System.out.println(b.getName());
System.out.println("---" + p.getName());
} transaction.commit();
} /**
* 连接查询-隐式内连接
* 查询结果
Hibernate:
select
book0_.id as id1_0_0_,
publisher1_.id as id1_1_1_,
book0_.name as name2_0_0_,
book0_.price as price3_0_0_,
book0_.publisher_id as publishe4_0_0_,
publisher1_.name as name2_1_1_
from
t_book book0_ cross
join
t_publisher publisher1_
where
book0_.publisher_id=publisher1_.id
云计算技术及性能优化
---电子工业出版社
C语言程序设计
---电子工业出版社
中国冰雪梦
---电子工业出版社
Photoshop图形图像处理
---北京大学出版社
VisualBasic2015实践教程
---北京大学出版社
生产微服务
---人民邮电出版社
架构探险:轻量级微服务架构(下册)
---人民邮电出版社
*/
@Test
public void run2() {
Session session = HibernateUtil.getCurrentSession();
Transaction transaction = session.beginTransaction(); String hql = "from Book b, Publisher p where b.publisher = p";
Query query = session.createQuery(hql); Book b = null;
Publisher p = null; List<Object[]> list = query.list();
for (Object[] book : list) { b = (Book) book[0];
p = (Publisher) book[1]; System.out.println(b.getName());
System.out.println("---" + p.getName());
} transaction.commit();
} /**
* 连接查询-显示内连接
* 查询结果
Hibernate:
select
book0_.id as id1_0_0_,
publisher1_.id as id1_1_1_,
book0_.name as name2_0_0_,
book0_.price as price3_0_0_,
book0_.publisher_id as publishe4_0_0_,
publisher1_.name as name2_1_1_
from
t_book book0_
inner join
t_publisher publisher1_
on book0_.publisher_id=publisher1_.id
云计算技术及性能优化
---电子工业出版社
C语言程序设计
---电子工业出版社
中国冰雪梦
---电子工业出版社
Photoshop图形图像处理
---北京大学出版社
VisualBasic2015实践教程
---北京大学出版社
生产微服务
---人民邮电出版社
架构探险:轻量级微服务架构(下册)
---人民邮电出版社
*/
@Test
public void run1() {
Session session = HibernateUtil.getCurrentSession();
Transaction transaction = session.beginTransaction(); String hql = "from Book b inner join b.publisher";
Query query = session.createQuery(hql); Book b = null;
Publisher p = null; List<Object[]> list = query.list();
for (Object[] book : list) { b = (Book) book[0];
p = (Publisher) book[1]; System.out.println(b.getName());
System.out.println("---" + p.getName());
} transaction.commit();
}
}

Hibernate- 连接查询的更多相关文章

  1. hibernate连接查询

    Hibernate的HQL语言类似于SQL语言,更适合于Java面向对象的思想. 类与数据库映射好了,不必考虑数据库. 实现Class1的表与Class2的表的联合查询: Class1的class2属 ...

  2. Hibernate批量处理数据、HQL连接查询

    一.批量处理操作 批量处理数据是指在一个事务场景中处理大量数据.在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作     数据库层面 ...

  3. hibernate 实现多表连接查询(转载)

    http://www.cnblogs.com/lihuiyy/archive/2013/03/28/2987531.html 为了方便,直接粘过来,方便查看.不收藏了 Hibernate主要支持两种查 ...

  4. Hibernate的查询,二级缓存,连接池

    Hibernate的查询,二级缓存,连接池 1.Hibernate查询数据 Hibernate中的查询方法有5中: 1.1.Get/Load主键查询 使用get或者load方法来查询,两者之间的区别在 ...

  5. Hibernate【查询、连接池、逆向工程】

    前言 在Hibernate的第二篇中只是简单地说了Hibernate的几种查询方式....到目前为止,我们都是使用一些简单的主键查询阿...使用HQL查询所有的数据....本博文主要讲解Hiberna ...

  6. Hibernate批量处理数据、[HQL连接查询]

    一.批量处理操作 批量处理数据是指在一个事务场景中处理大量数据.在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作 数据库层面 (2)使 ...

  7. Hibernate-ORM:13.Hibernate中的连接查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客将会解释Hibernate中的连接查询(各种join) 一,目录 1.内链接 1.1显式内连接(inn ...

  8. 【学习笔记】Hibernate HQL连接查询和数据批处理 (Y2-1-7)

    HQL连接查询 和SQL查询一样 hql也支持各种链接查询 如内连接 外连接 具体如下 左外连接 left (outer) join 迫切左外连接 left (outer) join fetch 右外 ...

  9. 转: Hibernate HQL查询 插入 更新(update)实例

    1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hq ...

  10. Hibernate的查询方式总结

    Hibernate的查询方式大体有三种,分别是HQL QBC和SQL三种.在网上查阅一一些资料,做了一个简单的总结. 1. SQL sql 是面向数据库表查询,from 后面跟的是表名,where 后 ...

随机推荐

  1. Squid调试和故障处理

    http://blog.zhdata.com/tag/squid第16章 调试和故障处理 16.1 一些通用问题 在讨论通用debug前,我先提起一些经常发生的问题. 16.1.1 “Failed t ...

  2. DBA_实践指南系列5_Oracle Erp R12日常运维和管理(案例)

    2013-12-05 Created By BaoXinjian

  3. python中杂乱问题

    1 字符串格式化中的格式指定 format_spec ::= [[fill]align][sign][#][][width][,][.precision][type] fill ::= <any ...

  4. django中models阅读笔记

    一.使用数据库需要设置settings.py文件. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # Add 'postgre ...

  5. Spring自带配置方式链接数据库(没有src新建文件,没有c3p0)

    1.配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:/ ...

  6. OpenGL cullface

    opengl cullface是根据顶点顺逆时针来判断正反面的.而不是根据法线判断的.所以有可能法线是正确的,但cullface效果却是反的.

  7. Python之反射练习

    # 什么是反射?可以用字符串的方式去访问对象的属性 class Test(): _name = "sss" def fun(self): return "Hellowor ...

  8. PHP采集库-Snoopy.class.php

    Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单. Snoopy的特点: 1.抓取网页的内容 fetch 2.抓取网页的文本内容 (去除HTML标签) fetchtext ...

  9. 在vps上安装中文环境

    现在vps默认都是安装的英文环境,其实变成中文环境也很简单.我记录以下在ubuntu下如何改变为中文环境. 1.安装中文环境包. sudo apt install language-pack-zh-h ...

  10. vim学习日志(5):vim下wimrc的配置,解决中文乱码问题

    解决linux下vim乱码的情况:(修改vimrc的内容) 全局的情况下:即所有用户都能用这个配置 文件地址:/etc/vimrc 在文件中添加: ,ucs-bom,gb18030,gbk,gb231 ...