Hibernate
文章平均质量分 94
已改行
溜了溜了
展开
-
Hibernate 框架学习——Hibernat的缓存策略
一、什么是缓存?缓存是介于物理数据源与应用程序之间,是对数据库中的数据复制一份临时放在内存中的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用程序的运行性能。Hibernate在进行读取数据的时候,根据缓存机制在相应的缓存中查询,如果在缓存中找到了需要的数据(我们把这称做“缓存命 中”),则就直接把命中的数据作为结果加以利用,避免了大量发送SQL语句到数据库查询的性能损...原创 2018-08-02 15:00:45 · 700 阅读 · 0 评论 -
Hibernate 框架学习——Hibernate检索方式
Hibernate检索方式概述我们在对数据库的操作中,最常用的是select,那么使用Hibernate如何进行select操作呢?本文就来徐徐道来。 Hibernate检索方式可分为5种:导航对象图检索方式,根据已加载的对象导航到其它对象。OID检索方式,按照对象的OID来检索对象。HQL检索方式,使用面向对象的HQL查询语言。QBC检索方式,使用QBC(Query by ...原创 2018-08-02 11:45:39 · 238 阅读 · 0 评论 -
Hibernate 框架学习——Hibernate注解
前言在Hibernate中我们一般都会使用注解,这样可以帮助我们大大简化hbm映射文件的配置。下面我就来为大家详细介绍。PO类注解配置首先肯定是搭建好Hibernate的开发环境啦,我在此也不过多赘述,读者自行实践。接着在src目录下创建一个cn.itheima.domain包,并在该包下创建一个Book实体类,由于Book实体类中写有注解配置,所以就不用编写那个映射配置文件啦!...原创 2018-08-02 11:31:35 · 8383 阅读 · 2 评论 -
Hibernate 框架学习——Hibernate中的多表操作
前言在实际开发中,我们不可能只是简简单单地去操作单表,绝大部分都是要对多表进行操作的。所以本文就来讲述Hibernate中的多表操作,讲之前,先复习一下使用SQL语句是如何进行多表操作的。提示:本文所有案例代码的编写都是建立在前文Hibernate检索方式概述的案例基础之上的!!!SQL多表操作SQL多表操作可分为如下几类:交叉连接(CROSS JOIN)交叉连接其实是...原创 2018-08-02 11:20:49 · 430 阅读 · 1 评论 -
Hibernate 框架学习——联级cascade属性
前言我们以部门和员工的关系为例讲解一对多关联关系映射时,删除部门时,如果部门有关联的员工且inverse属性为false,那么由于可以维护关联关系,它就会先把关联的员工的外键列设为null值,再删除自己。但是此刻希望删除部门时,就附带着把该部门下的所有员工都删掉,这时就需要引入cascade属性了。级联(cascade)当Hibernate持久化一个临时对象时,在默认情况下,它不会自动...原创 2018-08-02 10:44:01 · 282 阅读 · 0 评论 -
Hibernate 框架学习——多对多关联关系映射
多对多关联关系映射多对多的实体关系模型也是很常见的,比如学生和课程的关系。一个学生可以选修多门课程,一个课程可以被多名学生选修。在关系型数据库中对于多对多关联关系的处理一般采用中间表的形式,将多对多的关系转化成两个一对多的关系。 为了详细介绍多对多关联关系映射,终究还是应以一个例子来说明比较印象深刻。我们以老师和学生的关系为例来说明这种多对多关联关系映射。双向多对多我们最好新建...原创 2018-08-02 10:10:32 · 217 阅读 · 0 评论 -
Hibernate 框架学习——一对多关联关系映射
一对多关联关系映射我们还是以一个活生生的例子来详解一对多关联关系映射吧!就以部门和员工的关系为例。单向关联:仅仅建立从Employee到Department的多对一关联,即仅仅在Employee类中定义department属性。或者仅仅建立从Department到Employee的一对多关联,即仅仅在Department类中定义employees集合。双向关联:既建立从Employee...原创 2018-08-01 21:42:54 · 265 阅读 · 0 评论 -
Hibernate 框架学习——Session中操纵持久化对象的方法
save()Session的save()方法使一个临时对象转变为持久化对象。 Session的save()方法完成以下操作:把新new的对象加入到Session缓存中,使它进入持久化状态。选用映射文件指定的标识符生成器,为持久化对象分配唯一的OID。在使用代理主键的情况下,setId()方法为新new的对象设置OID是无效的。计划执行一条insert语句,把User对象当前的属性...原创 2018-08-01 21:27:05 · 367 阅读 · 0 评论 -
Hibernate 框架学习——Hibernate常用API
Hibernate的核心类和接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心类和接口在任何开发中都会用到。ConfigurationConfiguration类主要是用于加载Hibernate的核心配置文件。 为了和之前写的单元测试类——HibernateTest1.j...原创 2018-08-01 21:13:28 · 260 阅读 · 0 评论 -
Hibernate 框架学习——Hibernate中Java对象的状态
Hibernate把对象分为4种状态:临时状态持久化状态游离状态删除状态Session的特定方法能使对象从一个状态转换到另一个状态。临时对象(transient)在使用代理主键的情况下,OID通常为null。不处于Session的缓存中。Session里面是有一个集合的,这个集合我们称为Session的缓存,叫做一级缓存,它会引用Session要管理的对象。在...原创 2018-08-01 20:55:51 · 209 阅读 · 1 评论 -
Hibernate 框架学习——映射集合属性
集合映射集合属性大致有两种:单纯的集合属性,如像List、Set或数组等集合属性。Map结构的集合属性,每个属性值都有对应的Key映射。集合映射的元素大致有如下几种:list:用于映射List集合属性。set:用于映射Set集合属性。map:用于映射Map集合性。array:用于映射数组集合属性。bag:用于映射无序集合。idbag:用于映射无序集合,但为集合增加...原创 2018-08-01 20:42:40 · 235 阅读 · 0 评论 -
Hibernate 框架学习——映射主键属性
本文我们学习映射文件中的主键属性,废话不多说,直接开干。 我们首先在cn.itcast.d_hbm_id包下创建一个持久化类——User.java。public class User { private Integer id; // 如果是数字,建议使用包装类型。 private String name; public Integer getId() { ...原创 2018-08-01 20:31:56 · 470 阅读 · 0 评论 -
Hibernate 框架学习——映射普通属性
一、持久化对象与OID对持久化对象的要求提供一个无参的构造器。使Hibernate可以使用Constructor.newInstance()来实例化持久化类。提供一个标识属性(identifier property)。通常映射为数据库表的主键字段。如果没有该属性,一些功能将不起作用,如:Session.saveOrUpdate()。为类的持久化字段声明访问方法(get/set)。H...原创 2018-08-01 19:31:19 · 275 阅读 · 0 评论 -
Hibernate 框架学习——Java对象持久化概述
Java对象持久化概述应用程序的分层体系结构基于B/S的典型三层架构说明:展现层:提供与用户交互的界面。业务逻辑层:实现各种业务逻辑。数据访问层:负责存放和管理应用程序的持久化业务数据。更详细的三层架构如下图所示: 软件的层必须具备如下特征:每个层由一组相关的类或组件构成,共同完成特定的功能。层与层之间存在自上而下的依赖关系,即上层组件访问下...原创 2018-08-01 15:33:56 · 506 阅读 · 0 评论 -
Hibernate 框架入门
一、Hibernate框架介绍什么是Hibernate我们可以从度娘上摘抄这样有关Hibernate的介绍: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hi...原创 2018-08-01 10:44:04 · 53731 阅读 · 5 评论 -
Hibernate 框架学习——Hibernate的优化方案
HQL优化使用参数绑定 使用绑定参数的原因是让数据库一次解析SQL,对后续的重复请求可以使用生成好的执行计划,这样做节省CPU时间和内存。避免SQL注入。尽量少使用NOT 如果where子句中包含not关键字,那么执行时该字段的索引失效。尽量使用where来替换having having在检索出所有记录后才对结果集进行过滤,这个处理需要一定的...原创 2018-08-02 15:17:44 · 262 阅读 · 0 评论