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

  1、Query

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

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

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

    

@Test
public void test11(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createQuery方法创建Query对象。
* 参数为hql语句
* 使用QUERY对象的list方法获取数据集合
*/
Query query =session.createQuery("from UserEntity");
List<UserEntity> list = query.list();
//使用forEach遍历集合
for (UserEntity userEntity : list) {
System.out.println(userEntity);
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

  2、criteria

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

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

    

@Test
public void test12(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createCriteria方法创建criteria对象。
* 使用criteria对象的list方法获取数据集合
*/
Criteria criteria =session.createCriteria(UserEntity.class);
List<UserEntity> list = criteria.list();
//使用forEach遍历集合
for (UserEntity userEntity : list) {
System.out.println(userEntity);
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

  3、SQLQuery

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

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

    

@Test
public void test13(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createSQLQuery方法创建SQLQuery对象。
* 使用qQLQuery对象的list方法获取数据集合,集合里面不是对象,而是数组
*/
SQLQuery qQLQuery =session.createSQLQuery("select * from t_user");
List<Object[]> list = qQLQuery.list();
//使用forEach遍历集合
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

    (3)数组转换成对象

      

@Test
public void test13(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createSQLQuery方法创建SQLQuery对象。
* 使用qQLQuery对象的list方法获取数据集合,集合里面不是对象,而是数组
*/
SQLQuery qQLQuery =session.createSQLQuery("select * from t_user");
        //将数组装载进实体中
qQLQuery.addEntity(UserEntity.class);
List<UserEntity > list = qQLQuery.list();
//使用forEach遍历集合
for (UserEntity userEntity : list) {
System.out.println(userEntity);
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

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. Android-Activity-startActivityForResult

    之前 Android-Intent意图传递数据,的博客讲解了,一个Activity 跳转 到另外一个Activity 可以把数据带过去 Android还提供了一种方式,一个Activity 跳转 到另 ...

  2. SoapUI设置Cookie

    因為.NET寫的Web Service的方法是需要驗證session的. 需要先call方法Login之後才能使用其它的方法.最近剛在學用SoapUI測試soap的API,剛好可以通過Groovy S ...

  3. android之实现底部TabHost

    先说布局文件,如下:利用android:layout_alignParentBottom="true" 实现底部显示 <?xml version="1.0" ...

  4. win10 git 报错 Host key verification failed

    从code.aliyun.com切回github 原先的known_hosts里记录的是code.aliyun.com的ip,必须新加一个github的. known_hosts报错Host key ...

  5. oracle goldengate的两种用法

    此文已由作者赵欣授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 自从oracle收购来了goldengate这款产品并以后对它做了一系列改进后,有非常多的用户使用它做数据迁移 ...

  6. Collection 集合框架

    1. Collection 集合框架:在实际开发中,传统的容器(数组)在进行增.删等操作算法和具体业务耦合在一起,会增加程序的开发难度:这时JDK提供了这样的容器---Collection 集合框架, ...

  7. OCP 12c最新考试原题及答案(071-5)

    5.(4-12) choose two: You executed the following CREATE TABLE statement that resulted in an error: SQ ...

  8. “全栈2019”Java第二十四章:流程控制语句中决策语句switch下篇

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. JavaScript 实现用户点击图片放大

    JavaScript 实现用户点击图片放大 一.契机 情况是这样的,之前推荐朋友去建站.后面他专门写了一篇文章说如何实现 "用户点击图片实现放大效果",俺就好好 "拜读& ...

  10. c++11 perfect forwarding

    完美转发是c++11 引入右值引用之后,在template 中的延伸. 顾名思义,完美转发是将参数不改变属性的条件下,转发给下一个函数. 因为普通函数的参数一旦具名,始终都是lvalue. 如果把rv ...