(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)类与类之间关系:关联关系、聚集关系、继承关系。

Hibernate理解?的更多相关文章

  1. hibernate理解

    SSH框架: Struts框架, 基于mvc模式的应用层框架技术! Hibernate,基于持久层的框架(数据访问层使用)! Spring,创建对象处理对象的依赖关系以及框架整合! Dao代码,如何编 ...

  2. Struts 2 Spring Hibernate三大框架的执行流程以及原理

    Struts2框架 一.简介 Struts2是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架.它基于当年的WebWork和XWork框架,继承其优点,同时 ...

  3. (Hibernate进阶)Hibernate系列——总结篇(九)

    这篇博文是hibernate系列的最后一篇,既然是最后一篇,我们就应该进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通. 概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我 ...

  4. Hibernate的关联映射——单向N-1关联

    Hibernate的关联映射--单向N-1关联 N-1是非常常见的关联关系,最常见的父子关系也是N-1关联,单向的N-1关联只需从N的一端可以访问1的一端. 为了让两个持久化类能够支持这种关联映射,程 ...

  5. Hibernate——基础及XML配置

    1.入门 hibernate是跟数据库打交道的,一般跟数据库打交道的都不简单 原始.底层直接的一些操作.编码量比较大.费时.用框架高效 把原来一点一点实现的东西,现在给个半成品,不用在这上边发时间,把 ...

  6. web进修之—Hibernate 关系映射(3)

    概述 Hibernate的关系映射是Hibernate使用的难点或者是重点(别担心,不考试哦~),按照不同的分类方式可以对这些映射关系做一个分类,如: 按对象对应关系分: 一对一 多对一/一对多 多对 ...

  7. SSH:Hibernate框架(七种关联关系映射及配置详解)

    概念 基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用. 分类 关联关系分为上述七种,但是由于相互之间有各种关系, ...

  8. 【SSH进阶之路】Hibernate系列——总结篇(九)

    这篇博文是Hibernate系列的最后一篇,既然是最后一篇,我们就应该进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通. 概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我 ...

  9. Hibernte

    什么是CRM?(了解) CRM(customer relationship management)即客户关系管理,是指企业用CRM技术来管理与客户之间的关系.在不同场合下,CRM可能是一个管理学术语, ...

随机推荐

  1. eclipse 保存web.xml 和 loading description from 问题的解决

    Eclipse 版本为 2019-06 (4.12.0) 发现开启的时候一直有loading description from ***  ,这个loading description 是web项目加载 ...

  2. JavaScript制作九九乘法表

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. 中文转拼音,pinyin4j实用示例

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换.拼音输出格式可以定制. Support Chinese character (both Simplified and Trandi ...

  4. SQL 优化SQL查询

    摘至于:http://www.cnblogs.com/ATree/archive/2011/02/13/sql_optimize_1.html 1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据 ...

  5. freemarker的replace的使用

    1.replace替换: <#assign name="sdfsfdsa\ndfsafs\n"> 例子:${name?replace("\n",&q ...

  6. pg数据库data文件夹达到32G

    最近工作中遇到pg数据库data文件夹大小达到32G,大致的排查流程如下: 1.首先查看是哪个文件或者那些文件比较大: 2.根据文件的名称找到对应的数据表a: 3.确认数据表a中数据实际上只有3000 ...

  7. 最长回文子序列LCS,最长递增子序列LIS及相互联系

    最长公共子序列LCS Lintcode 77. 最长公共子序列 LCS问题是求两个字符串的最长公共子序列 \[ dp[i][j] = \left\{\begin{matrix} & max(d ...

  8. shoeBox超实用的雪碧图(Sprite)图制作工具-使用

    从前端优化说起 浏览器载入单张图片的速度基本取决于图片的大小,但是载入多张图片的速度却和另一个要素息息相关-网络请求数,在图片大小和一致的情况下,图片张数越少其请求数越少其载入速度也就越快.所以在使用 ...

  9. buuctf@helloword

  10. mybatis-plus-generator 实践

    package com.huixiaoer.ant.generator; import com.baomidou.mybatisplus.annotation.DbType; import com.b ...