398、Java框架52 -【Hibernate - 分页、两种获取方式】 2020.10.27
0、目录
- 1、分页
- 2、分页,从第3个开始,一共查询5个Product
- 3、延迟加载
- 4、对于id不存在的对象的处理
- 5、参考链接
1、分页
使用Criteria进行分页查询
无论你使用的是Oracle,Mysql,NoSQL还是DB2,分页查询的代码写法都是一样的
2、分页,从第3个开始,一共查询5个Product
Hibernate使用Criteria 来进行分页查询
c.setFirstResult(2); 表示从第3条数据开始
c.setMaxResults(5); 表示一共查询5条数据
package com.how2java.test;import java.util.List;import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Restrictions;import com.how2java.pojo.Product;public class TestHibernate {public static void main(String[] args) {SessionFactory sf = new Configuration().configure().buildSessionFactory();Session s = sf.openSession();s.beginTransaction();String name = "iphone";Criteria c= s.createCriteria(Product.class);c.add(Restrictions.like("name", "%"+name+"%"));c.setFirstResult(2);c.setMaxResults(5);List<Product> ps = c.list();for (Product p : ps) {System.out.println(p.getName());}s.getTransaction().commit();s.close();sf.close();}
}
3、延迟加载
load方式是延迟加载,只有属性被访问的时候才会调用sql语句
get方式是非延迟加载,无论后面的代码是否会访问到属性,马上执行sql语句
package com.how2java.test;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;import com.how2java.pojo.Product;public class TestHibernate {public static void main(String[] args) {SessionFactory sf = new Configuration().configure().buildSessionFactory();Session s = sf.openSession();s.beginTransaction();System.out.println("log1");Product p = (Product) s.get(Product.class, 1);System.out.println("log2");Product p2 = (Product) s.load(Product.class, 2);System.out.println("log3");System.out.println(p2.getName());System.out.println("log4");s.getTransaction().commit();s.close();sf.close();}
}
4、对于id不存在的对象的处理
都通过id=500去获取对象
- get方式会返回null
- load方式会抛出异常
package com.how2java.test;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;import com.how2java.pojo.Product;public class TestHibernate {public static void main(String[] args) {SessionFactory sf = new Configuration().configure().buildSessionFactory();Session s = sf.openSession();s.beginTransaction();System.out.println("log1");Product p = (Product)s.get(Product.class, 5);System.out.println("log2");Product p2 = (Product)s.load(Product.class, 5);System.out.println("log3");Product p3 = (Product)s.get(Product.class, 500);System.out.println("p3="+p3);Product p4 = (Product)s.load(Product.class, 500);System.out.println("p3="+p4);s.getTransaction().commit();s.close();sf.close();}
}
5、参考链接
[01] How2j - Hibernate - 分页
398、Java框架52 -【Hibernate - 分页、两种获取方式】 2020.10.27相关推荐
- Java框架篇---spring aop两种配置方式
Java框架篇---spring aop两种配置方式 第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步: 1. 使用注解@Aspect来定义一个切面,在切面中 ...
- Hibernate中两种获取Session的方式
转自:https://www.jb51.net/article/130309.htm Session:是应用程序与数据库之间的一个会话,是hibernate运作的中心,持久层操作的基础.对象的生命周期 ...
- Java中定义字符串的两种常见方式、使用==和equals()比较字符串
在讲使用==和equals()比较字符串之前,我们首先要讲定义字符串的两种常见方式,一种是定义一个常量,即直接定义字符串,一种是通过new关键字定义一个变量,即使用String类定义字符串,如下图: ...
- Java中匿名类的两种实现方式
使用匿名内部类课使代码更加简洁.紧凑,模块化程度更高.内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到.然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式 ...
- java中字符串的创建_【转载】 Java中String类型的两种创建方式
本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...
- Java基础21 多线程线程两种实现方式 锁
一.多线程的概念 1.程序 :一个固定逻辑与数据的集合 就称为程序 例如淘宝 贪吃蛇小游戏 2.CPU: 中央处理器 主要用于协调程序与硬件进行配置的工作 3.并发与并行 1.并发(高并发) 在同一个 ...
- java 多线程的单例模式,Java多线程中的单例模式两种实现方式
Java多线程中的单例模式 一.在多线程环境下创建单例 方式一: package com.ietree.multithread.sync; public class Singletion { priv ...
- java map遍历_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
- java中两种遍历集合的方式_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
最新文章
- rman备份常用命令
- realloc函数引发的慘案
- 软件架构设计学习总结(14):大型网站技术架构(八)网站的安全架构
- jquery 选项卡实现
- 阿里内部mysql规范40条
- 使用 python 的 urllib2和 urllib模块爆破 form 表单的简易脚本
- collection转换为list_JAVA 集合 接口继承关系和实现,List,Set,Map(总结)
- Riverbed调查:惊人发现95%的中国受访者高度关注应用性能
- 零基础入门深度学习(3) - 神经网络和反向传播算法
- 杭电4515小Q系列故事——世界上最遥远的距离
- 爬虫抓取表格中的数据
- 在Linux(Ubuntu)下编写编译C语言
- Office 2007无法卸载也无法安装的解决
- java 809 128 题_java编程题809*??=800*??+9*??+1
- 【2021 年 MathorCup 高校数学建模挑战赛—赛道A二手车估价问题】2 问题一 数据预处理、特征工程及模型训练Baseline 和数据
- 添加内核驱动模块(4)(mydriver.c+ Konfig+Makefile )
- 【fk_index】外键中有无索引的区别
- KBMMW-创建自定义服务
- 什么是APS高级计划排程(高级计划排产)可视化甘特图,有哪些应用效果?
- Java课程设计-基于Java Swing的学生信息管理系统-版本二