学习Hibenate随笔
1.Hibenate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,将pojo类与数据库表建立映射关系,是一个全自动orm框架,Hibenate可以自动生成sql语句,自动执行。
2.核心API:Session、SessionFactory、Transaction、Query、Criteria和Configuration,通过这些接口,可以对持久化对象进行存取、事务控制。
3.Session:Session接口负责执行被持久化对象的CRUD(CRUD任务是完成与数据库的交流,包含了许多常见的sql语句),Session是非线程安全的。这里的是Hibenate的sessoin,不同于jsp的HttpSession,称用户session。
4.SessionFactory:负责初始化Hibenate,充当数据源的代理,并负责创建session对象,SessionFactory并不是轻量级的,一般情况下一个项目有一个SessionFactory,操作多个,需要为每一个数据库创建一个SessionFactory。
5.transaction事务:访问并可能更新数据库各项数据项的一个执行单元。特性:原子性、一致性、隔离性数据库、持久性。
原子性:一个事务是一个不可分割的工作单位,事务中包括的诸多操作,要么都做要么都不做。
一致性:事务必须是使数据库从一个一致性状态转变到另一个一致性状态,一致性是与原子性密切相关的。
隔离性:一个事务的执行不受其他事务的干扰,一个事务内部的操作及使用的数据对并发的其他事务隔离,并发执行的各个事务之间相互不影响。
持久性:一个事务一旦提交,它对数据库的影响是永久的。接下的操作不当也不会对它产生影响。
6.Query:方便的对数据库及持久化对象进行查询,有两种查询方式HQL语言和本地SQL查询。用来绑定查询,限制查询数量,最终执行查询操作。
7.Criteria:和Query接口类似,允许创建并执行面向对象的标准查询,但它只能和session一起使用。
8.Configuration:作用是配置Hibenate以及启动,Hibenate启动时,首先定位映射文档的位置,读取配置文件,创建一个SessionFactory。
9.有9种主键。。。。:https://baike.so.com/doc/2610851-2756769.html
10.缓存管理:Hibenate有两级Cache(告诉缓存存储器),第一级别的缓存是session缓存,属于事务范围缓存,由Hibenate管理;第二级别的缓存是SessionFactory缓存,属于进程范围或集群范围的缓存,可以进行配置和修改,Hibenate还为查询结果提供了一个查询缓存,依赖于二级缓存。
11.Hibenate工作原理:
(1)、通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件。
(2)、由hibernate.cfg.xml中的<mappingresource="com/xx/User.hbm.xml"/>读取解析映射信息。
(3)、通过config.buildSessionFactory();//得到sessionFactory。
(4)、sessionFactory.openSession();//得到session。
(5)、session.beginTransaction();//开启事务。
(6)、persistent operate;
(7)、session.getTransaction().commit();//提交事务
(8)、关闭session;
(9)、关闭sessionFactory;
学习Hibenate随笔的更多相关文章
- html标签学习入门 随笔
Html学习入门 随笔1: HTML 标题 HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的. 标题仅用于标题文本 不应该被使用在加粗字 ...
- linux的学习记录随笔
为什么学习linux 因为操作系统是一种介质,你要接触其中的东西,首先必须要有介质,而linux在服务器端是老大哥的地位,所以呢,学习linux吧. 学习的方式 可以看视频 imooc.百度传课.网易 ...
- 2015.8.1 bootstrap学习(个人每日学习的随笔,比较凌乱
写在前面: 记录自己的学习中遇到的问题和解决办法.因为是每日晚上总结,可能只是随便一笔带过方便自己记忆.如有写的错误或者凌乱之处,请勿介意 1.<html lang="zh-hans& ...
- Java学习的随笔(一)对象概念、this指针、权限修饰符
最近在看<Java编程思想>,下面按照最近看书的顺序梳理一下心得,由于是初次学习,大部分心得是摘抄自书中: 1. Java中,每个变量都是一个对象. 在创建时首先在内存的堆栈中创建一个该对 ...
- 19.10.11学习日记随笔 mysql事务隔离性
一天的感悟 学习事务的处理方式,其中反想自己学过的flask 默认是开启事务的,flask_sqlalchemy每次在提交时都是需要commit,或者失败是需要rollback回滚操作的,其实pyth ...
- 学习varnish随笔
Varnish是一款高性能.开源的反向代理服务器和缓存服务器.Varnish使用内存缓存文件来减少响应时间和网络带宽消耗.这个项目是由挪威的一家报纸Verdens Gang的网络分支起始的,其架构设计 ...
- C# 学习的随笔【随时更新】
1.结束自己 Application.Exit(); //这个东西有重载函数
- 学习java随笔第十一篇:java窗体程序
要开java的窗体程序,就要下载开发窗体的工具. 这里我用的是的myeclipse,可以直接在网上下载安装即可. 我用的是10.0版本的,如果需要汉化的话,可以看一下这篇文章:myeclipse.10 ...
- 学习java随笔第十篇:java线程
线程生命周期 线程的生命周期:新建状态.准备状态.运行状态.等待/阻塞状态.死亡状态 示意图: 定义.创建及运行线程 线程: package threadrun; //定义一个实现Runnable接口 ...
随机推荐
- 1-趣味解读DNS工作原理——转载疯猫网络科技
因为只要我们输入百度.腾讯.淘宝的名字,无论它们的服务器在哪里,历经多少轮查询,我们都能找到并访问之.这就是计算机网络中著名的域名系统DNS(Domain Name System),它能实现把一个网站 ...
- Docker Macvlan 应用部署
Docker Macvlan 应用部署 MacVLAN有两种桥接模式 Bridge模式:不创建子接口的情况下直接去桥接物理接口.直接桥接到与宿主级的同网段. VLAN Bridge模式:创建子接口去桥 ...
- Python Redis hash
hash表现形式上有些像pyhton中的dict,可以存储一组关联性较强的数据 , redis中Hash在内存中的存储格式如下图: hset(name, key, value) # name对应的ha ...
- MySql 三大知识点,索引、锁、事务,原理分析
1.索引 索引,类似书籍的目录,可以根据目录的某个页码立即找到对应的内容. 索引的优点:1. 天生排序,2. 快速查找. 索引的缺点:1. 占用空间,2. 降低更新表的速度. 注意点:小表使用全表扫描 ...
- nmon监控数据分析
性能测试中,各个服务器资源占用统计分析是一个很重要的组成部分,通常我们使用nmon这个工具来进行监控以及监控结果输出. 一. 在监控阶段使用类似下面的命令 ./nmon -f write_3s_20v ...
- AndroBench手机性能测试【转】
本文转载自:https://www.cnblogs.com/jiangzhishan/archive/2018/07/16/9316279.html AndroBench是一个基准测试应用程序,可以衡 ...
- Learning-Python【24】:面向对象之组合
组合的概念 一个类的对象具备某一个属性,该属性的值是来自于另外一个类的对象,称之为组合,组合也是用来解决类与类之间代码冗余的问题 组合的使用 在继承中,举了一个属性查找顺序方式一的例子,最终的实现成果 ...
- win10 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler”
更新Win10,原来的IIS站点访问不了,原因是因为IIS 没有.net 4.5,使用网上的aspnet_regiis.exe -i命令,一点都不靠谱,直接提示: C:\WINDOWS\system3 ...
- struts2注释返回json数据
- docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面
1.从容器里面拷文件到宿主机? 答:在宿主机里面执行以下命令 docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 示例: 假设容器名为testtomcat, ...