----------------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. cocos2d-x 3.2 关闭按钮点击立马销毁自己报错

    cocos2d-x 3.2 Button点击事件里调用移除当前层报错 http://www.th7.cn/program/ios/201408/271227.shtml 诡异的错误,点击关闭按钮,居然 ...

  2. 多文件的Makefile

    Linux下编写一般采用gcc编译工具,但gcc无法满足大量的文件同时编译,这是就用到Makefile,首先先介绍一下gcc GCC编译的四个步骤 1.预处理,生成预编译文件(.文件): Gcc –E ...

  3. 常用ETL工具

    一 ETL工具[国外] 1. datastage点评:最专业的ETL工具,价格不菲,使用难度一般 下载地址:ftp://ftp.seu.edu.cn/Pub/Develop ... taStage.v ...

  4. Java 设计模式之抽象工厂模式(三)

    原文地址:Java 设计模式之抽象工厂模式(三) 博客地址:http://www.extlight.com 一.前言 上篇文章 <Java 设计模式之工厂模式(二)>,介绍了简单工厂模式和 ...

  5. shell常用测试命令

    预定义变量: 预定义变量是由Bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,而不能创建新的预定义变量,也不能直接为预定义变量赋值.预定义比变量使用"$"符合和另一个符 ...

  6. qt在动态库里面加载widget的例子

    testDll和testExe项目 备注:windows下dll内不需要new QApplication, linux和mac下面需要在动态库里面new QApplication testdll.h ...

  7. Android UI一些技巧

    (1)去掉EditText的背景颜色  android:background="@null" (2)ListView 修改某行的值,因为一些功能逻辑,需要修改ListView某行的 ...

  8. 阻塞队列之四:ArrayBlockingQueue

    一.ArrayBlockingQueue简介 一个由循环数组支持的有界阻塞队列.它的本质是一个基于数组的BlockingQueue的实现. 它的容纳大小是固定的.此队列按 FIFO(先进先出)原则对元 ...

  9. [python] 使用scikit-learn工具计算文本TF-IDF值

    在文本聚类.文本分类或者比较两个文档相似程度过程中,可能会涉及到TF-IDF值的计算.这里主要讲述基于Python的机器学习模块和开源工具:scikit-learn.        希望文章对你有所帮 ...

  10. 用IO字节流复制文件-CopyFileByIo

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...