Hibernate 框架理解
Hibernate框架简化了java应用程序与数据库交互的开发。Hibernate是一个开源,轻量级的ORM(对象关系映射)工具。
ORM工具简化浏览数据的创建,数据处理和数据访问。它是将对象映射到数据库中存储的数据(表)的编程技术。
ORM工具内部使用JDBC API与数据库进行交互。
Hibernate框架的优点:
- 开源和轻量级:Hibernate看见是根据LGPL许可证和轻量级的开源工具。
- 快速性能:Hibernate框架的性能很快,因为缓存在Hibernate框架内部使用。Hibernate框架中有两种类型的缓存:一级缓存和二级缓存。一级缓存默认是启用的。
- 数据库独立查询:HQL(Hibernate查询语言)是面向对象的SQL版本。它生成数据库独立查询。所以不需要编写数据库特定的查询语句。在 Hibernate之前,如果项目修改了数据库,需要更改SQL查询,从而导致维护变得复杂。
- 自动创建表:Hibernate框架提供了自动创建数据库表的功能。因此,无需手动在数据库中创建表。
- 简化复杂连接:在Hibernate框架中可轻松获取多个表中的数据。
- 提供查询统计和数据库状态:Hibernate支持查询缓存,并提供有关查询和数据库状态的统计信息。
Hibernate架构包括许多对象持久对象,会话工厂、事物工厂、连接工厂、会话事务等。Hibernate架构中可分为4层Java应用层、hibernate框架层、反手api层和数据库层
Application ------Presistent Object -----HIBERNATE Mapping File、Configuration File --Database
Presistent Object部分包括:SessionFactory、Session、Transaction Factory、Transaction、Connection Provider。
Hibernate框架可以使用许多对象会话工厂,会话、事务等以及现有的Java API,如JDBC(Java数据库连接)、JTA(Java事务API)和JNDI(Java命名目录接口)。
要创建一个hibernate应用程序,需要知道Hibernate架构的元素。
会话工厂(SessionFactory)
SessionFactory是ConnectionProvider的会话和客户端工厂。它拥有数据的二级缓存(可选)。org.hibernate.SessionFactory接口提供了工厂方法来获取Session的对象。
会话(Session)
Session对象提供应用程序和存储在数据库中的数据之间的接口。它是一个短生命周期的对象并包装JDBC连接。它是事务、查询和标准的工厂。它还提供了事务、查询和标准的工厂方法。
事务(Transaction)
事务对象指定工作的原子单位,它是一个可选项。org.hibernate.Transaction接口提供事务管理的方法。
连接提供者(ConnectionProvider)
它是一个JDBC连接工厂。它从DriverManager或DataSource抽象出来的应用程序。是一个可选事项。
事务工厂(TransactionFactory),是一个可选项。
另外,可以使用注释创建hibernate应用程序。有许多注释可用于创建hibernate应用程序,如@Entity,@Id,@Table等。Hibernate注释基于JPA2规范。并支持所有功能。所有的JPA注释都在javax.persistence.*包中定义。Hibernate EntityManager实现由JPA规范定义的接口和生命周期。使用hibernate注释的优势是不需要创建映射(*.hbm.xml)文件直接创建对象关联。
@Entity注释将类标记为实体,放在类名上。
@Table注释指定要关联此实体类的数据库的表名。放在类名上,格式@Table(name="表名")
如果不使用@Table注释,hibernate将使用类名作为表名称。默认情况。
@Id注释标记实体的标识符。
@Column注释指定此属性或字段的列的详细情况。如果位指定@Column注释,则属性名称将用作列名,默认情况下。
Hibernate 框架理解的更多相关文章
- Java ssh 框架 hibernate 详细理解
Hibernate框架技术相信对大多数的 java 程序员并不陌生,数据表之间的关系如何通过Hibernate来建立,需要我们认真的分析数据表中数据项之间的交互: 数据库表的之间的关系有: (1)一对 ...
- 对Hibernate的理解
---恢复内容开始--- 一.面向对象设计的软件内部运行过程可以理解成就是不断创建各种新对象,建立对象之间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程.不管程序运行的过程和操作怎么样,本 ...
- Hibernate框架—简介
ORM对象/关系数据库映射 ORM全称Object/Relation Mapping,对象/关系数据库映射,可以理解成一种规范.该框架的基本特征:完成面向对象的编程语言到关系数据库之间的映射. ORM ...
- 项目总结SpringMVC+hibernate框架 web.xml 分析(2)
紧接 项目总结SpringMVC+hibernate框架 原理(MVC) applicationContext.xml 文件(3) 这一步讲解项目模块化的配置,项目中每个模块配置一个文件,命名规则为 ...
- Hibernate框架入门
导读 本文主要介绍hibernate的入门,主要包括以下内容:hibernate介绍.hibernate环境搭建.hibernate简单测试.测试涉及的api详解. 一.hibernate介绍 JDB ...
- Hibernate框架进阶(上篇)
导读 前面一片文章介绍了Hibernate框架的入门,主要是讲解Hibernate的环境搭建和简单测试,有兴趣的童鞋出门左转.本文在入门的基础上进行Hibernate的进阶讲解,分为上中下三篇,本篇为 ...
- hibernate框架学习笔记6:事务
MySQL的事务.JDBC事务操作: 详细见这篇文章:比较详细 http://www.cnblogs.com/xuyiqing/p/8430214.html 如何在hibernate中配置隔离级别: ...
- [ SSH框架 ] Hibernate框架学习之二
一.Hibernate持久化类的编写规范 1.什么是持久化类 Hibernate是持久层的ORM影射框架,专注于数据的持久化工作.所谓持久化,就是将内存中的数据永久存储到关系型数据库中.那么知道了什么 ...
- [ SSH框架 ] Hibernate框架学习之三
一.表关系的分析 Hibernate框架实现了ORM的思想,将关系数据库中表的数据映射成对象,使开发人员把对数据库的操作转化为对对象的操作,Hibernate的关联关系映射主要包括多表的映射配置.数据 ...
随机推荐
- JavaScript Allongé 第一呷 :基础函数 (2)
啊!我想要有一个参数 到现在为止,我们已经了解了没有参数的函数.只说我们的函数没有任何参数,甚至还没说参数是什么.大多数程序员非常熟悉参数,中学数学就讨论这个了.所以你知道他们是什么,而我也知道你知道 ...
- 推荐一个VPS
有日本节点,不贵,用了两个月,感觉不错 http://www.vultr.com/?ref=6847480
- Jquery多选框互相内容交换
<head runat="server"> <title>无标题页</title> <script type="text/jav ...
- nodejs express 设置html后缀模板
express 框架的默认渲染模板的后缀是 ejs ,由于编译器在ejs的文件里写html代码没有高亮显示,所以使用html模板. 示例: var app = express(); app.set(' ...
- 【学习笔记】六:面向对象的程序设计——理解JS中的对象属性、创建对象、JS中的继承
ES中没有类的概念,这也使其对象和其他语言中的对象有所不同,ES中定义对象为:“无序属性的集合,其属性包含基本值.对象或者函数”.现在常用的创建单个对象的方法为对象字面量形式.在常见多个对象时,使用工 ...
- Android 如何通过Retrofit提交Json格式数据
本文将介绍如何通过retrofit库post一串json格式的数据.首先post的json数据格式如下: { "Id": "string", "Dev ...
- Yii2.0 Cookies机制和使用方法
在实际的项目开发过程中,用到了Yii2.0 Cookies机制!但是遇到一个十分奇葩的问题,同一个YII框架,backend下Cookies能够正常存储于客户端,但是frontend始终不行.文章的最 ...
- Azure 项目构建 – 构建和部署 .NET 应用程序
本课程主要介绍了如何在 Azure 平台上快速构建和部署基于 .NET 语言的 Web 应用, 实践讲解如何使用 Azure 门户创建 Web 应用, 部署 ASP.NET 代码, 连接 Azure ...
- jmeter中登录和提交收银出现的错误
登录出现的错误 登录界面如图所示: 为了防止登录跳转的问题response code 302的问题,要设置 2.提交收银界面 当系统设置必须传送jison格式时,要在HTTP Header Manag ...
- 关于sqlserver帐号被禁用问题
若发现sqlsrver所有帐号不小心被禁用了,这个时候怎么办?用重装吗?不用,仔细看小白是怎么一步一步解开这个谜题的.首先需要Windows帐号设置里重新添加一个新帐号.并将其添加到管理员组里面,然后 ...