(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. 附录1:arrayanalysis的本地使用(质量控制)

    访问:https://github.com/BiGCAT-UM/affyQC_Module,点击“Download ZIP”,下载得到affyQC_Module-master.zip,解压得到一个af ...

  2. 分布式---Raft算法

    6.Raft   Raft也是分布式一致性协议,主要是用来竞选主节点. 单个Candidate的竞选   有三种节点:Follower,Candidate和Leader.Leader会周期性的发送心跳 ...

  3. java中接口知识点大总结

    接口的确很不好理解!!!!!那我来好好总结一下: 首先要理解接口是一个独立存在的,和类是不一样的东西,所以,直接用接口的定义是: 访问权限控制符 interface 接口名 [extends  接口列 ...

  4. 剑指offer-数组中只出现一次的数字-数组-python

    题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.   # -*- coding:utf-8 -*- class Solution: # 返回[a, ...

  5. sql server select和set赋值的区别

    --SQL Server中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT --当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法 (1)SELECT可以在一条语句里对 ...

  6. 一次MySQL两千万数据大表的优化过程,三种解决方案

    问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死.严重影响业务 ...

  7. react 基础语法使用

    刚开始不久react,在菜鸟上及其他前辈网站上学习,下面开始我的自学笔记. 包括: 渲染元素 组件(函数方法定义.es6 class定义) 事件处理 条件渲染 列表 下面代码部分将不会再写html部分 ...

  8. Linux Exploit系列之四 使用return-to-libc绕过NX bit

    使用return-to-libc绕过NX bit 原文地址:https://bbs.pediy.com/thread-216956.htm 这篇讲解的比较好,主要的问题是获得system地址和exit ...

  9. linux使用iptable做网关

    首先在能上外网的机器上增加一块网卡 我这里两块网卡配置如下 [root@muban1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 外网卡 DEV ...

  10. ansible常用模块详解(三)

    1.模块介绍 明确一点:模块的执行就类似是linux命令的一条命令,就单单的是为了执行一条语句,不是批量的操作,批量操作需要用到playbook内类似shell编写脚本进行批量. 1.1 模块的使用方 ...