博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate理解?
阅读量:4914 次
发布时间:2019-06-11

本文共 1234 字,大约阅读时间需要 4 分钟。

(1)Hibernate是对象关系映射框架,对JDBC进行非常轻量级的对象封装,是全自动的ORM框架,可以自动生成SQL语句、自动执行。

(2)语言特点

     <1>将对数据库的操作转换为对Java对象的操作从而简化开发。

     <2>提供线程和进程两个级别的缓存提升应用程序性能。

     <3>有丰富的映射方式将Java对象之间的关系转换为数据库表之间的关系。

     <4>非侵入式:Hibernate不要求持久化类实现任何接口或继承任何类。

(3)Hibernate优点:

    <1>封装了JDBC,简化了很多重复性代码。

    <2>简化了DAO层编码工作,使开发更对象化了。

    <3>移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变Hibernate代码。

     <4>支持透明持久化,没有实现任何接口,没有侵入性。

(4)Hibernate核心API有6个分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这些接口可以对持久化对象进行存取、事务控制。

    <1>Session接口负责执行被持久化对象的CRUD操作,Session对象是非线程安全的。

    <2>SessionFactory接口负责初始化Hibernate。

   <3>Query负责查询

    <4>Configuration作用是对Hibernate进行配置以及对它进行启动。

(5)主键有两种:

<1>Assigned方式由用户生成主键值,并且要在save()之前指定否则会抛出异常,特点是主键的生成值完全由用户决定与底层数据库无关。用户需要维护主键值,在调用session.save()之前要指定主键值。

<2>UUID使用128位UUID算法生成主键,能够保证网络环境下的主键唯一性,也就能够保证在不同数据库及不同服务器下主键的唯一性。特点是能够保证数据库中的主键唯一性,生成的主键占用比较多的存贮空间。

(6)Hibernate中提供了两级Cache,第一级别的缓存是Session,它是属于事务范围的缓存。第二级别的缓存是SessionFactory,它是属于进程范围或集群范围的缓存。Hibernate还为查询结果提供了一个查询缓存它依赖于第二级缓存。

(7)Session级别的缓存:save()、update()、saveOrUpdate()、get()、load()、list()。

(8)延迟加载:get不支持延迟加载,load支持延迟加载。

(9)性能优化:

     <1>使用一对多的双向关联,尽量从多的一端维护。

     <2>不要使用一对一,尽量使用多对一。

     <3>配置对象缓存,不要使用集合缓存。

      <4>表字段要少,表关联不要怕多,有二级缓存支持。

(10)类与类之间关系:关联关系、聚集关系、继承关系。

转载于:https://www.cnblogs.com/hongwei2085/p/8878003.html

你可能感兴趣的文章
2018.10.16
查看>>
实验三实验报告
查看>>
【LeetCode】21. Merge Two Sorted Lists 解题小结
查看>>
rpm数字证书安装
查看>>
Upgrade GI/CRS 11.1.0.7 to 11.2.0.2. Rootupgrade.sh Hanging
查看>>
6. 下载地址:UCenter API For .Net 在 CodePlex 上发布啦!(转载)
查看>>
Oracle四舍五入,向上取整,向下取整
查看>>
UVA 10236 The Fibonacci Primes
查看>>
C#函数式编程练习
查看>>
CCF 送货 + 欧拉路模板
查看>>
Response输出excel设置文本样式
查看>>
编程之美--3.7
查看>>
白话经典算法系列之二 直接插入排序的三种实现
查看>>
超简单的制作win7 U盘启动
查看>>
java 集合专练
查看>>
【转】hibernate延迟加载和抓取策略
查看>>
SimpleDateFormat转换时间,12,24时间格式
查看>>
python学习笔记(十五)异常处理
查看>>
Entity Framework里不用查询直接更新的办法
查看>>
win10 下的 CUDA10.0 +CUDNN + tensorflow + opencv 环境部署
查看>>