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)-课堂笔记
前言 先说一些题外的东西吧.受到春跃大神的影响和启发,推荐了这个算法公开课给我,晚上睡觉前点开一看发现课还有两天要开始,本着要好好系统地学习一下算法,于是就爬起来拉上两个小伙伴组团报名了.今天听了第一 ...
随机推荐
- 用python写个快排
快排过程比较简单就直接上代码了: #!/usr/bin/python3 def quik_sort(L, left, right): if left <= right: key = L[left ...
- Django 实现上传图片功能
很多时候我们要用到图片上传功能,如果图片一直用放在别的网站上,通过加载网址的方式来显示的话其实也挺麻烦的,我们通过使用 django-filer 这个模块实现将图片文件直接放在自己的网站上. 感兴趣的 ...
- loj#6436. 「PKUSC2018」神仙的游戏(NTT)
题面 传送门 题解 一旦字符串踏上了通配符的不归路,它就永远脱离了温暖的字符串大家庭的怀抱 用人话说就是和通配符扯上关系的字符串就不是个正常的字符串了比如说这个 让我们仔细想想,如果一个长度为\(le ...
- The server of Apache (一)——apache服务的基本安装过程
一.为了避免端口冲突,需要卸载linux系统中以RPM方式安装的httpd ~] # rpm -qa | grep httpd ~] # rpm -e httpd --nodeps (此处nodeps ...
- python中html解析
import requestsfrom bs4 import BeautifulSoup url = "..." payload =...headers = None respon ...
- js实现斐波那契数列
1:递归 function fb1(n){ if(n <= 2){ return 1; }else{ return fb1(n-1) + f ...
- shell-004:检测机器存活或者网络陡动情况!
如下图情况,我们监测的就是此数据,当大于50%了,我们就可以设置告警等! #!/bin/bash # 用ping检测一台机器的存活或者网络波动情况 # 检测机器的丢包率来检测网络波动情况!! n=`p ...
- 使用Jenkins进行Android自动打包,自定义版本号等信息【转】
之前App在提交测试和最终部署的过程中App打包一直是由开发人员来完成的,由于项目比较大, 再加上Android打包本身就比较慢,所以每次打包还是很耗时的.并且按照严格的研发流程来讲,开发人员应该只负 ...
- HDU-2063(二分图匹配模板题)
过山车Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- vue filters过滤器的使用
说的很详细 https://www.w3cplus.com/vue/how-to-create-filters-in-vuejs.html