----------------siwuxie095

(一)Query

1、使用 Query 对象执行查询操作,不需要写 sql 语句,但是要写 hql 语句

(1)hql:即 Hibernate Query Language,它是 Hibernate 提供的查询语言

(2)hql 语句和 sql 语句很相似

(3)hql 和 sql 语句的区别:

1)使用 sql 语句操作的是表和表中字段

2)使用 hql 语句操作的是实体类和属性

2、"查询所有记录" 的 hql 语句

from 实体类名

3、实现过程

(1)创建 Query 对象

(2)调用 Query 对象的方法得到结果

//(1) 创建 Query 对象

//

//调用 session 的 createQuery() 方法,

//参数是 hql 语句,返回值是 Query 类型,

//创建以接收

Query query=session.createQuery("from User");

//(2) 调用 Query 对象的方法得到结果

//

//调用 query 的 list() 方法得到结果,

//返回值是 List 类型,创建以接收,并

//指定泛型为 User

List<User> list=query.list();

for (User user : list) {

System.out.println(user);

}

(二)Criteria

1、使用 Criteria 对象执行查询操作,不需要写语句,直接调用方法实现

2、实现过程

(1)创建 Criteria 对象

(2)调用 Criteria 对象的方法得到结果

//(1) 创建 Criteria 对象

//

//调用 session 的 createCriteria() 方法,

//参数是实体类的 class,返回值是 Criteria

//类型,创建以接收

Criteria criteria=session.createCriteria(User.class);

//(2) 调用 Criteria 对象的方法得到结果

//

//调用 criteria 的 list() 方法得到结果,

//返回值是 List 类型,创建以接收,并指定

//泛型为 User

List<User> list=criteria.list();

for (User user : list) {

System.out.println(user);

}

(三)SQLQuery

1、使用 SQLQuery 对象执行查询操作,可以调用底层 sql 语句实现

2、实现过程

(1)创建 SQLQuery 对象

(2)调用 SQLQuery 对象的方法得到结果

//(1) 创建 SQLQuery 对象

//

//调用 session 的 createCriteria() 方法,

//参数是 sql 语句,返回值是 SQLQuery 类型,

//创建以接收

SQLQuery sqlQuery=session.createSQLQuery("select * from t_user");

//(2) 调用 SQLQuery 对象的方法得到结果

//

//调用 sqlQuery 的 list() 方法得到结果,

//返回值是 List 类型,创建以接收

//

//注意:此时返回的 List 的每部分都是一

//个数组,而不是 User 对象,所以指定泛型

//为 Object[]

List<Object[]> list=sqlQuery.list();

for (Object[] objects : list) {

//Arrays.toString() 将数组作为字符串输出

System.out.println(Arrays.toString(objects));

}

修改:让返回的 List 中每部分都是一个 User 对象

SQLQuery sqlQuery=session.createSQLQuery("select * from t_user");

//让返回的 List 中每部分都是一个 User 对象

//

//调用 sqlQuery 的 addEntity() 方法,参数

//是实体类的 class,设置要将数据放到哪个实

//体类的对象中

sqlQuery.addEntity(User.class);

List<User> list=sqlQuery.list();

for (User user : list) {

System.out.println(user);

}

【made by siwuxie095】

Hibernate其它API的更多相关文章

  1. Hibernate5笔记3--详解Hibernate的API

    详解Hibernate的API: (1)Configuration接口: org.hibernate.cfg.Configuration接口的作用是加载主配置文件及映射文件,以实现对Hibernate ...

  2. Java程序员从笨鸟到菜鸟之(五十二)细谈Hibernate(三)Hibernate常用API详解及源码分析--csdn 曹胜欢

    新接触一个框架的目的就是想利用这个框架来为我们做一些工作,或者是让他来简化我们的工作,利用这个框架无非就是要利用这个框架所给我们提供的API去操作我们的数据,所以利用一个框架的好坏很大一部分取决于你对 ...

  3. java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)

    1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...

  4. hibernate常用API详解

    根据个人使用Hibernate的经验,介绍一下Hibernate的多种不同的查询和CUD操作,这些东西在日常开发中非常常用,希望对大家有所帮助. 以下示例均以两张表为例:member和userinfo ...

  5. 简单了解Hibernate核心API

    一.SessionFactory 1.它代表的是数据库的连接,其实就是在hibernate.cfg.xml文件中的配置信息 2.可以预定义SQL语句 3.SessionFactory是线程安全的,它维 ...

  6. Hibernate基础学习(二)—Hibernate相关API介绍

    一.Hibernate的核心接口      所有的Hibernate应用中都会访问Hibernate的5个核心接口.      (1)Configuration接口: 配置Hibernate,启动Hi ...

  7. Hibernate的Api以及三种查询方式

    Hibernate  Api |-- Configuration       配置管理类对象 config.configure();    加载主配置文件的方法(hibernate.cfg.xml) ...

  8. ( 转)Hibernate常用API

    http://blog.csdn.net/yerenyuan_pku/article/details/65103203 可在度娘上摘抄如下文字: Hibernate的核心类和接口一共有6个,分别为:S ...

  9. Hibernate常用api以及增删改查

    一   .API的定义 所谓的API全称就是(Application Programming Interface,应用程序编程接口).就是类库对外提供的接口.类.枚举.注解等元素. 如:JDK API ...

  10. Use Hibernate core API

    For Hibernate configuration, We can use hibernate.cfg.xml file to configure: <?xml version='1.0' ...

随机推荐

  1. istio 安装试用

    1. 命令行工具 curl -L https://git.io/getIstio | sh - 2. 环境变量配置 export PATH=$PWD/bin:$PATH 3. RBAC 检验 kube ...

  2. bzoj 2535 && bzoj 2109 [Noi2010]Plane 航空管制——贪心

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2535 https://www.lydsy.com/JudgeOnline/problem.p ...

  3. thinkphp3.2.3版本在windows本地apache环境运行正常,上传到centos服务器apache环境中出现:thinkphp 上传根目录不存在!请尝试手动创建:uploads/

    thinkphp 上传根目录不存在!请尝试手动创建:uploads/  ,是根目录下uploads权限问题,我把uploads权限改成了775,就可以上传图片了.     chmod -R 775 u ...

  4. C程序花括号嵌套层次统计(新)

    [问题描述] 编写程序,统计给定的C源程序中花括号的最大嵌套层次,并输出花括号嵌套序列,该程序没有语法错误. 注意:1)源程序注释(/* … */)中的花括号应被忽略,不参与统计.2)源程序中的字符串 ...

  5. java web----刷新页面的程序 (重复包括)

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312" ...

  6. python中break continue exit() pass区别

    1.break break是终止本次循环,比如你很多个while循环,你在其中一个while循环里写了一个break,满足条件,只会终止这个while里面的循环,程序会跳到上一层while循环继续往下 ...

  7. Linux文件属性,类型,ls -lhi解释行列

    Linux文件属性(描述信息) -i inode节点号 -h 人类可读 ls -lhi 1703938 drwxr-xr-x 2 rsync rsync 4.0K Jun 7 07:24 gamese ...

  8. python学习 (二十八) Python的for 循环

    1: for 循环可以循环如下类型: my_string = "abcabc" // 字符串类型 for c in my_string: print(c, end=' ') car ...

  9. 【做题记录】USACO silver * 50(第一篇)

    由于我太菜,决定按照AC人数从小到大慢慢做. BZOJ开了权限号真的快了好多诶~ 29/50 1606: [Usaco2008 Dec]Hay For Sale 购买干草 背包dp 1610: [Us ...

  10. IO模型之非阻塞IO

    1. IO模型非阻塞 IO Linux下,可以通过设置socket使其变为 non-blocking.当对一个non-blocking socket执行读操作时,流程是这个样子: 从图中可以看出,当用 ...