Hibernate课堂笔记
1.java持久化概述
Java持久化简称(JPA), 即把程序中的临时数据持久保存到数据库中。由于jdbc开发效率低,我们就提出了对象关系映射(ORM)的概率
2.ORM
通过java持久化提供的API来讲java的实体对象保存到数据库中。
3.Hibernate
Hibernate的核心就是基于ORM的设计思想,对于Hibernate来说,一个java类就是数据库中的一张表,java类中的一个属性就是表中的一个字段,一个java类的实例就是一条数据
4.Hibernate框架搭建
a.新建java项目
b.添加hibernate相关jar到项目lib目录中
c.新建java实体类和对于的数据库表
d.创建实体类相关*.hbm.xml映射文件
e.hibernate的配置文件hibernate.cfg.xml放在src下
f.测试
5.Hibernate的增删查改
增save()
删除delete()
改 update()
查询 get(),load()
6.get()和load()的区别
见案例
7.lazy属性 懒加载/延迟加载
用到时才加载
lazy="true"
8.Hibernate的对象状态
1.瞬时状态、临时状态
只能new出来的对象
不处于session的缓冲中(session不管理)
对象在数据库中没有对应的记录
只要主键在数据库中存在,就说这个对象在数据库中有对应的记录
2.持久化状态
1.处于session的管理范围
当执行session的方式(save/update/saveOrUpdate/get/load)时,这个对象就会自动转成持久状态
2.在数据库中有对应的记录
3.处于游离状态的对象,当对象属性进行更改的时间,提交事物更改会反映到数据中。
3.游离状态
1.对象不处于session管理范围,通常指session关闭后的对象状态
2.对象在数据库中有对应的数据
9.hibernate 一级缓存(也叫session缓存)
当执行session的相关方法时,入save,update,get,load等方法时,对象会自定放入一级缓存中,当session关闭缓存就会消失。
特点:
- 缓存有效范围,只在当前session范围,缓存时间很短,作用范围小
- 一级缓存,可以在短时间内多次操作数据库的时候,提升效率,减少对数据库的访问次数
- 在提交事物时,hibernate会同步缓存到数据库中,会对比缓存数据和数据库数据是否一致,如果一致不修改数据库,不一致提交到数据库执行update语句。
session.clear();清空缓存
session.evict(user1);清除指定缓存
10.实体关系(表与表的关系)
多对一 学生 对 班级
一对多 班级 对 学生
双向一对多
多对多 学生 对 老师
一对一 用户 对 身份证
11.控制反转
inverse="true" :控制反转,把主导权给另一方 就会失去外键维护的权利
Hibernate课堂笔记的更多相关文章
- hibernate关联关系笔记
Hibernate关联关系笔记 单向N:1 * 有连接表:在N方使用<join>/<many-to-one>.1方无需配置与之关联的持久化类. * 没有连接表:在N方使用& ...
- Hibernate学习笔记(二)
2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...
- Hibernate学习笔记(一)
2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...
- Hibernate 学习笔记一
Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- 九章算法系列(#3 Binary Tree & Divide Conquer)-课堂笔记
前言 第一天的算法都还没有缓过来,直接就进入了第二天的算法学习.前一天一直在整理Binary Search的笔记,也没有提前预习一下,好在Binary Tree算是自己最熟的地方了吧(LeetCode ...
- 九章算法系列(#5 Linked List)-课堂笔记
前言 又是很长时间才回来发一篇博客,前一个月确实因为杂七杂八的事情影响了很多,现在还是到了大火燃眉毛的时候了,也应该开始继续整理一下算法的思路了.Linked List大家应该是特别熟悉不过的了,因为 ...
- 九章算法系列(#4 Dynamic Programming)-课堂笔记
前言 时隔这么久才发了这篇早在三周前就应该发出来的课堂笔记,由于懒癌犯了,加上各种原因,实在是应该反思.好多课堂上老师说的重要的东西可能细节上有一些急记不住了,但是幸好做了一些笔记,还能够让自己回想起 ...
- 九章算法系列(#2 Binary Search)-课堂笔记
前言 先说一些题外的东西吧.受到春跃大神的影响和启发,推荐了这个算法公开课给我,晚上睡觉前点开一看发现课还有两天要开始,本着要好好系统地学习一下算法,于是就爬起来拉上两个小伙伴组团报名了.今天听了第一 ...
随机推荐
- 4.jQuery和DOM 对象之间的相互转换
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- js 三大家族之offset
JS中的offset家族: 一.offsetWidth与offsetHeight: 获取的是元素的实际宽高 = width + border + padding 注意点: 1.可以获取行内及内嵌的宽高 ...
- ELK (Elasticsearch , Logstash, Kibana [+FileBeat])
ELK 简述: ELK 是: Elasticsearch , Logstash, Kibana 简称, 它们都是开源软件. Elasticsearch[搜索]是个开源分布式基于Lucene的搜索引擎, ...
- FPGA基础学习(5) -- 时序约束(实践篇)
目录 1. 理论回顾 2. 时间裕量 3. 最大延迟和最小延迟 4. 案例分析 参考文献: 距离上一篇有关时序的理论篇已经有一段时间了(可以参考博文FPGA时序约束--理论篇),实际上此段时间,甚至到 ...
- JSTL的核心标签
JSTL的核心标签: .if: 语法:<c:if test="" var="" scope=""></c:if> 当 ...
- ZOJ Monthly, January 2019 I Little Sub and Isomorphism Sequences(set 妙用) ZOJ4089
写这篇博客来证明自己的愚蠢 ...Orz 飞机 题意:给定你个数组,以及一些单点修改,以及询问,每次询问需要求得,最长的字串长度,它在其他位置存在同构 题解:经过一些奇思妙想后 ,你可以发现问题是传 ...
- 1080 MOOC期终成绩 (25 分)
对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分( ...
- [转] Java:对Scanner的useDelimiter()方法的疑问
[From]https://segmentfault.com/q/1010000003885362 Windows下,我们在键盘上按下Enter键,实际上输入的是回车和换行两个字符:\r\n,ASCI ...
- [转] Java8 日期/时间(Date Time)API指南
[From] http://www.importnew.com/14140.html Java 8日期/时间( Date/Time)API是开发人员最受追捧的变化之一,Java从一开始就没有对日期时间 ...
- spring4.x hibernate4.x 整合 ehcache 注解 annotate
[From] http://my.oschina.net/alexgaoyh/blog/348188