Hibernate开发教程(1):概述

提起Hibernate,很多人多知道是一个ORM[Object-Relational-Mapping(对象-关系-映射]的中间件。它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。Hibernate不仅负责从Java类到数据库表的映射(还包括从Java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理SQL和JDBC上的开发时间。
Hibernate 在.Net Framework 有对应的开发为NHibernate. Hibernate 和NHibernate 的基本概念和使用方法基本一致,因此本教程也可作为NHibernate开发的参考。

首先说明一下为什么要使用ORM工具,也就是使用类似hibernate 等ORM工具的好处。在软件开发的设计的过程,尤其是使用面向对象设计方法时,根据系统需求,抽象出系统对象模型(类定义),有了这些对象类定义,如果需要使用数据库存放这些数据,就需要根据系统需求和类定义来定义数据库的表,定义数据库表时有涉及到表和表之间的关系,表的主键和外键定义等等,然后再通过大量的SQL语句或是通过ADO对象来存取数据库,然后根据数控库内容创建或赋值对应的系统对象的实例。

在开发应用时,开发人员有相当一部分时间花在设计数据库表,表之间的关系,编写SQL语句,使用Hibernate之后,开发人员一般只需要对系统进行建模,抽象出系统的类定义,然后借助Object-Relational 映射文件(一般为XML文件),然后Hibernate就可以自动帮助用户创建数据表,通过简单的save, delete,load, update 等就可以完成数据库的存取操作,而无需再编写大量的SQL代码 ,大大提高软件的开发效率。

学习Hibernate 的一个核心问题为定义对象-关系-映射文件 (Object-Relational Mappings)。如果是开发新系统,有工具可以直接从UML生成Hibernate使用的映射文件。但如果是对现有系统进行改造或是数据库已经定义好,根据已有的系统类Classes 和Database Schema来定义Hibernate 映射文件就需要比较深入的了解Hibernate支持的映射关系类型(有点类似逆向工程,就比较费事)。

对于新建系统,Hibernate可以自动根据映射文件创建数据库Schema ,工作量就小多了,如果使用UML,连创建映射文件的工作都可以省了。

用个简单的例子来说明,比如使用SQL语句插入一条记录。

INSERT INTO Items(id, name) VALUES(NULL, 'My Item');
如果使用ORM框架,可以直接使用对象save方法

Item item = new Item();
item.name = "My Item";
item.save();

ORM框架自动根据所管理的数据创建对应的SQL语句对数据库进行读写操作。
后面就详细介绍Hibernate开发,数据使用常用的MySQL 数据库,Hibernate 支持大部分常用的数据库类型如Oracle, Mysql, Sqlite, SqlServer ,因此使用Hibernate的还有一个好处是通过了一个数据抽象层,可以屏蔽对实际物理数据库类型的依赖,支持无缝更换数据库类型:)(当然还是需要修改一些配置文件)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值