Hibernate查询所有数据的操作方式有三种。

  1、Query

    (1)使用该方法查询时,不需要编写sql语句,但是需要编写hql(Hibernate Query Language)语句,该语句是Hibernate查询语言。

    (2)hql语言操作的是实体类和实体类的属性,比如查询所有数据的hql语句为:from 实体类名称。

    (3)使用方法:首先创建Query对象,然后调用该对象的List方法返回数据集合。

    

  1. @Test
  2. public void test11(){
  3. SessionFactory sessionFactory = null;
  4. Session session = null;
  5. Transaction tx = null;
  6. try {
  7. sessionFactory = HibernateUtils.getFactory();
  8. session = sessionFactory.getCurrentSession();
  9. tx = session.beginTransaction();
  10. /**
  11. * 使用session对象的createQuery方法创建Query对象。
  12. * 参数为hql语句
  13. * 使用QUERY对象的list方法获取数据集合
  14. */
  15. Query query =session.createQuery("from UserEntity");
  16. List<UserEntity> list = query.list();
  17. //使用forEach遍历集合
  18. for (UserEntity userEntity : list) {
  19. System.out.println(userEntity);
  20. }
  21. tx.commit();
  22. } catch (Exception e) {
  23. tx.rollback();
  24. }finally{
  25. sessionFactory.close();
  26. }
  27. }

  2、criteria

    (1)使用该对象不需要写hql语句,只需要指定实体类。

    (2)使用方法:首先创建criteria对象,然后调用list返回数据集合。

    

  1. @Test
  2. public void test12(){
  3. SessionFactory sessionFactory = null;
  4. Session session = null;
  5. Transaction tx = null;
  6. try {
  7. sessionFactory = HibernateUtils.getFactory();
  8. session = sessionFactory.getCurrentSession();
  9. tx = session.beginTransaction();
  10. /**
  11. * 使用session对象的createCriteria方法创建criteria对象。
  12. * 使用criteria对象的list方法获取数据集合
  13. */
  14. Criteria criteria =session.createCriteria(UserEntity.class);
  15. List<UserEntity> list = criteria.list();
  16. //使用forEach遍历集合
  17. for (UserEntity userEntity : list) {
  18. System.out.println(userEntity);
  19. }
  20. tx.commit();
  21. } catch (Exception e) {
  22. tx.rollback();
  23. }finally{
  24. sessionFactory.close();
  25. }
  26. }

  3、SQLQuery

    (1)使用该对象,需要写底层的SQL语句。

    (2)实现方法:首先创建该对象,然后调用list。

    

  1. @Test
  2. public void test13(){
  3. SessionFactory sessionFactory = null;
  4. Session session = null;
  5. Transaction tx = null;
  6. try {
  7. sessionFactory = HibernateUtils.getFactory();
  8. session = sessionFactory.getCurrentSession();
  9. tx = session.beginTransaction();
  10. /**
  11. * 使用session对象的createSQLQuery方法创建SQLQuery对象。
  12. * 使用qQLQuery对象的list方法获取数据集合,集合里面不是对象,而是数组
  13. */
  14. SQLQuery qQLQuery =session.createSQLQuery("select * from t_user");
  15. List<Object[]> list = qQLQuery.list();
  16. //使用forEach遍历集合
  17. for (Object[] objects : list) {
  18. System.out.println(Arrays.toString(objects));
  19. }
  20. tx.commit();
  21. } catch (Exception e) {
  22. tx.rollback();
  23. }finally{
  24. sessionFactory.close();
  25. }
  26. }

    (3)数组转换成对象

      

  1. @Test
  2. public void test13(){
  3. SessionFactory sessionFactory = null;
  4. Session session = null;
  5. Transaction tx = null;
  6. try {
  7. sessionFactory = HibernateUtils.getFactory();
  8. session = sessionFactory.getCurrentSession();
  9. tx = session.beginTransaction();
  10. /**
  11. * 使用session对象的createSQLQuery方法创建SQLQuery对象。
  12. * 使用qQLQuery对象的list方法获取数据集合,集合里面不是对象,而是数组
  13. */
  14. SQLQuery qQLQuery =session.createSQLQuery("select * from t_user");
            //将数组装载进实体中
  15. qQLQuery.addEntity(UserEntity.class);
  16. List<UserEntity > list = qQLQuery.list();
  17. //使用forEach遍历集合
  18. for (UserEntity userEntity : list) {
  19. System.out.println(userEntity);
  20. }
  21. tx.commit();
  22. } catch (Exception e) {
  23. tx.rollback();
  24. }finally{
  25. sessionFactory.close();
  26. }
  27. }

Hibernate查询所有数据的操作的更多相关文章

  1. hibernate 查询全部数据的三种方法

    1.Query对象 使用Query对象需要写hql语句,使用hql语句操作的是实体类和属性. 用于查询全部的hql语句:from 实体类名称   例:String hql = "from U ...

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

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

  3. 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案

    1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...

  4. MYSQL初级学习笔记四:查询数据的操作DQL(SELECT基本形式)(26-35)

    知识点六:查询数据的操作DQL(SELECT基本形式)(26-35) CREATE DATABASE IF NOT EXISTS cms DEFAULT CHARACTER SET utf8; USE ...

  5. TreeView和ListView数据库查询数据联动操作

    好久不用了,重新整理下放这里以备需要使用,功能见图 数据库表结构 定义TreeView addObject中data存储的记录集 type PNode = ^TNode; TNode = record ...

  6. 使用 DML语句,对 “锦图网” 数据进行操作,连接查询(内连接,左外连接,右外连接,全连接)

    查看本章节 查看作业目录 需求说明: 对 "锦图网" 数据进行操作: 统计每一种线路类型的线路数量.最高线路价格.最低线路价格和平均线路价格,要求按照线路数量和平均线路价格升序显示 ...

  7. Hibernate查询

    HIbernate查询 使用get方法 使用get方法通过持久类名和ID号查找一个对象Stu instance = (Stu) getsession() .get("com.lovo.po. ...

  8. hibernate 入门([数据访问中间件] 开源框架)

    1.内容:  hibernate 也是一个经典的[数据访问中间件] 开源框架.    2.hibernate核心组件       SessionFactory[整个数据的操作]重量级组件       ...

  9. Hibernate查询、连接池、二级缓存

    Hibernate第三天: 1. 对象状态 2. session缓存 3. lazy懒加载 4. 映射 一对一对映射 组件/继承映射 目标: 一.hibernate查询 二.hibernate对连接池 ...

随机推荐

  1. json的两种格式

    JSON: JavaScript Object Notation      (JavaScript 对象表示法) JSON 是存储和交换文本信息的语法.类似 XML. 一.JSON对象:JSONObj ...

  2. asp.net——Ajax与ashx异步请求的简单案例

    Ajax与ashx异步请求的简单案例: 前台页面(aspx): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...

  3. Visual Studio 2015 Update 2 发布

    2016年3月30日,微软发布了Visual Studio 2015 Update 2 . 更新内容: Visual Studio  Visual Studio Tools for Apache Co ...

  4. python-自定义异步非阻塞爬虫框架

    api import socket import select class MySock: def __init__(self, sock, data): self.sock = sock self. ...

  5. django 生命周期

    客户端发送请求 客户端(浏览器) → 发送请求 → 服务器(wsgi) → 解析请求 → 服务器(Middleware) → process_request → 服务器(urls) → 通过路由寻vi ...

  6. UWP平台Taglib编译(1)

    此文已由作者郑博授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验 最近开始开发UWP平台的App,项目需要用到Taglib进行音视频文件的标签信息读写,Google并没有现成的B ...

  7. linux 查看进程所在目录

    一下内容转自:https://blog.csdn.net/spring21st/article/details/50561550 通过 ps 及 top 命令查看进程信息时,只能查到 相对路径,查不到 ...

  8. centos7 docker 安装 zookeeper 3.4.13 单机standalone

    假设一台单机主机的ip分别为: 单机主机:192.168.0.200 1. 查找zookeeper镜像: docker search zookeeper 2. 下载官方zookeeper镜像: doc ...

  9. linux开机后第一个程序--init

    背景知识 计算机启动基本流程如下 1)首先开机自检-POST, 2)自检通过后根据CMOS的配置找到第一个可启动磁盘的MBR中的boot loader程序(一般在启动磁盘的第一个物理扇区,占446字节 ...

  10. gitlab容器--带https配置

    #2.gitlab 重要目录 /home/maks/gitlab/config /etc/gitlab /home/maks/gitlab/logs /var/log/gitlab /home/mak ...