Hibernate查询所有数据的操作
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查询所有数据的操作的更多相关文章
- hibernate 查询全部数据的三种方法
1.Query对象 使用Query对象需要写hql语句,使用hql语句操作的是实体类和属性. 用于查询全部的hql语句:from 实体类名称 例:String hql = "from U ...
- 【学习笔记】Hibernate HQL连接查询和数据批处理 (Y2-1-7)
HQL连接查询 和SQL查询一样 hql也支持各种链接查询 如内连接 外连接 具体如下 左外连接 left (outer) join 迫切左外连接 left (outer) join fetch 右外 ...
- 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案
1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...
- MYSQL初级学习笔记四:查询数据的操作DQL(SELECT基本形式)(26-35)
知识点六:查询数据的操作DQL(SELECT基本形式)(26-35) CREATE DATABASE IF NOT EXISTS cms DEFAULT CHARACTER SET utf8; USE ...
- TreeView和ListView数据库查询数据联动操作
好久不用了,重新整理下放这里以备需要使用,功能见图 数据库表结构 定义TreeView addObject中data存储的记录集 type PNode = ^TNode; TNode = record ...
- 使用 DML语句,对 “锦图网” 数据进行操作,连接查询(内连接,左外连接,右外连接,全连接)
查看本章节 查看作业目录 需求说明: 对 "锦图网" 数据进行操作: 统计每一种线路类型的线路数量.最高线路价格.最低线路价格和平均线路价格,要求按照线路数量和平均线路价格升序显示 ...
- Hibernate查询
HIbernate查询 使用get方法 使用get方法通过持久类名和ID号查找一个对象Stu instance = (Stu) getsession() .get("com.lovo.po. ...
- hibernate 入门([数据访问中间件] 开源框架)
1.内容: hibernate 也是一个经典的[数据访问中间件] 开源框架. 2.hibernate核心组件 SessionFactory[整个数据的操作]重量级组件 ...
- Hibernate查询、连接池、二级缓存
Hibernate第三天: 1. 对象状态 2. session缓存 3. lazy懒加载 4. 映射 一对一对映射 组件/继承映射 目标: 一.hibernate查询 二.hibernate对连接池 ...
随机推荐
- json的两种格式
JSON: JavaScript Object Notation (JavaScript 对象表示法) JSON 是存储和交换文本信息的语法.类似 XML. 一.JSON对象:JSONObj ...
- asp.net——Ajax与ashx异步请求的简单案例
Ajax与ashx异步请求的简单案例: 前台页面(aspx): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...
- Visual Studio 2015 Update 2 发布
2016年3月30日,微软发布了Visual Studio 2015 Update 2 . 更新内容: Visual Studio Visual Studio Tools for Apache Co ...
- python-自定义异步非阻塞爬虫框架
api import socket import select class MySock: def __init__(self, sock, data): self.sock = sock self. ...
- django 生命周期
客户端发送请求 客户端(浏览器) → 发送请求 → 服务器(wsgi) → 解析请求 → 服务器(Middleware) → process_request → 服务器(urls) → 通过路由寻vi ...
- UWP平台Taglib编译(1)
此文已由作者郑博授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验 最近开始开发UWP平台的App,项目需要用到Taglib进行音视频文件的标签信息读写,Google并没有现成的B ...
- linux 查看进程所在目录
一下内容转自:https://blog.csdn.net/spring21st/article/details/50561550 通过 ps 及 top 命令查看进程信息时,只能查到 相对路径,查不到 ...
- centos7 docker 安装 zookeeper 3.4.13 单机standalone
假设一台单机主机的ip分别为: 单机主机:192.168.0.200 1. 查找zookeeper镜像: docker search zookeeper 2. 下载官方zookeeper镜像: doc ...
- linux开机后第一个程序--init
背景知识 计算机启动基本流程如下 1)首先开机自检-POST, 2)自检通过后根据CMOS的配置找到第一个可启动磁盘的MBR中的boot loader程序(一般在启动磁盘的第一个物理扇区,占446字节 ...
- gitlab容器--带https配置
#2.gitlab 重要目录 /home/maks/gitlab/config /etc/gitlab /home/maks/gitlab/logs /var/log/gitlab /home/mak ...