上一篇: 下一篇:
先引个头,真正开发使用Hibernate也不过一年,站在只满足于业务开发角度,我总是平平而过。
最近想往真正架构师前行,在数据持久层上需要更加深入理解一下设计思路与原理,希望同道朋友指点与指正。
先看看做为持久层框架应该具备的特性:(这里主要指数据库持久层的特性)
1,数据库操作(CRUD)进行完整的封装:
主要指增删改查等操作。
2,事务机制:
原子性,一致性,隔离性,持久性。
3,扩展性:
可以新增或修改类的属性,或从一个数据库产品移植到另一个数据库产品;能满足应用开发人员与持久层管理人员开展各自的工作。
4,主键支持:
主键的生成或数据库的生成方式。
5,游标:
6,代理:
对象关联之间,可通过代理对象,从而现实lazy。
7,支持原始sql
由于一些数据库特色,在不考虑移植性时,为提高性能而做的选择。
8,不同数据库的支持:
支持多种主流数据库
9,多种连接池共生:
支持多种数据库或多个数据库连接池被一个对象应该程序访问
10,开发语言支持:
持久层是为应该程序服务的,支持当前开发语言。
11,对象与关系数据库的映射转换:
支持从对象到关系数据库之间的映射关系。
12,对象与关系数据库的结构生成:
支持通过对象或关系数据库生成映射方的文件生成。
13,关系遍历:
支持对象访问子对象的遍历操作。
14,缓冲区:
支持缓存,以提高性能。
15,锁:
支持访问数据时,指定悲观锁或乐观锁。
16,支持配置:
支持通过配置文件,载入需要的各种信息,如映射,数据库连接等。
基于以上的要求,设计一个针对数据库持久层,我们要将业务层与关系数据库分开,让两者的变化不会对对方造成直接的影响。这是根本目的,现在有一些团体在使用Hibernate时,在业务中加入操作数据库的代码设计在其中,那hibernate框架就没有原本的作用了,他的作用就是隔离,再隔离。
有人说直接的sql性能更好,其实性能这东西就与编程语言一样,最原始的汇编肯定是最好的;但是高级的语言如C++/Java也还可以接受。
使用Hibernate需要一个到sql的转换,那么,你想使用最原始的sql的性能,使用hibernate时,就要了解他的转换规则,做到这点,其实在基本的使用上,Hibernate的性能还是不会差太多,再通过设置缓存,把在查询上丢失的性能补回一些,这些优化手段,在后续再描述。
在了解数据库持久层后,如果没有现成的框架,你怎么来实现呢?想想自己的思路,试着再想想。
想完了,再回头来看Hibernate的设计,他在事务处理上,连接池上,映射关系上,查询转换上,缓冲(缓存)支持上,都是怎么做的?它用了哪些设计模式呢?
关于思路,我就不多说了,下面的02中将对hibernate的基本使用做一下描述,再通过对几大核心类的分析,从而简单的了解hibernate的运行机制。
先列出下面的目录
Hibernate-01-持久层发展过程
Hibernate-02-一般使用
Hibernate-03-运行机制
Hibernate-04-核心Configuration
Hibernate-05-核心SessionFactory
Hibernate-06-核心Session
Hibernate-07-核心Transaction
Hibernate-08-核心Query和Criteria接口
Hibernate-09-乐观锁与悲观锁
Hibernate-10-拦截器
Hibernate-11-性能-抓取策略
Hibernate-12-性能-二级缓存
Hibernate-13-性能-管理缓存
Hibernate-14-性能-原理集合性能
Hibernate-15-性能-监测
Hibernate-16-总结
分享到:
相关推荐
而Middlegen则是与Hibernate配套使用的工具,它能自动生成Hibernate的持久层代码,大大提升了开发效率。本文将深入探讨Middlegen-Hibernate-r5这一版本,揭示它们如何协同工作,为开发者带来便利。 一、Middlegen...
在这个专题中,我们将深入探讨Hibernate 4.3.5.Final版本,它是Hibernate发展历史中的一个重要里程碑,为开发人员提供了强大的数据持久化功能。 一、Hibernate概述 Hibernate 是Java领域中最流行的ORM框架之一,它...
使用 Hibernate 注解可以简化 Hibernate 代码,使持久层的编码过程变得更为轻松。 传统上,Hibernate 的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载。在最近发布的几个 ...
在IT行业中,数据库管理和持久化层的设计是至关重要的环节。Middlegen与Hibernate这两个工具,正是为了解决这些问题而生。Middlegen-Hibernate-r5.rar这个压缩包,蕴含了关于这两个工具的最新版本资源,为我们提供了...
Struts、Hibernate和Spring是Java开发中非常重要的三个框架,它们分别在Web层、持久化层和业务层提供了解决方案。这个压缩包"struts-hibernate-spring最全jar包.rar"包含了这三个框架的核心库文件,使得开发者可以...
本教程主要关注基于MyBatis和Hibernate的Java持久层开发整合,这是Java EE企业级应用开发中的重要组成部分。MyBatis是一个优秀的SQL映射框架,它简化了数据库操作,而Hibernate是一个对象关系映射(ORM)框架,它...
引入持久层后,系统架构更清晰,业务层和持久层可以独立变化,提高了代码的可维护性和可扩展性。 【DAO模式】 DAO(Data Access Object)模式是实现持久层的一种常见方式,它通过提供专门的对象来处理与数据库的...
Hibernate的持久化层与Spring的事务管理结合,确保了数据的一致性。 5. **最新版的改进**:随着技术的发展,每个框架都在不断更新和完善。最新版的《Struts-Hibernate-Spring集成开发宝典》可能涵盖了最新的API、...
1. **对象关系映射(ORM)**:Hibernate是Java平台上的ORM解决方案,它将数据库中的表映射为Java对象,简化了数据访问层的代码编写,通过面向对象的方式来操作数据库,降低了数据库操作的复杂性。 2. **持久化模型*...
在实际项目中,我们可以利用Hibernate的这些特性,快速构建数据访问层,减少数据库操作的复杂性。例如,通过SessionFactory的openSession()方法获取Session,然后使用Session的save()或update()方法完成对象的持久化...
Hibernate 是一款流行的 Java 持久层框架,能够简化 Java 应用程序与数据库交互的过程。在 Hibernate 2.x 版本中,元数据主要通过 XML 文件来管理。随着技术的发展,Hibernate 引入了注解(Annotations),使得元...
《Java持久层框架之Hibernate》是一本专注于Java领域中Hibernate框架的专业书籍,旨在帮助开发者深入理解和熟练运用这一强大的ORM(对象关系映射)工具。Hibernate是Java开发中的一个热门选择,它极大地简化了数据库...
随着Java技术的发展,ORM(Object-Relational Mapping,对象关系映射)框架如Hibernate和轻量级应用框架Spring的出现,极大地简化了这一过程。本课程设计以Hibernate和Spring为基础,探讨如何设计和实现高效、灵活的...
### 用Hibernate和Spring开发持久层 #### 一、引言 随着企业级应用的不断发展,数据持久化层的设计和实现成为了系统架构中的关键部分。本文将深入探讨如何结合使用Hibernate和Spring框架来构建高效、稳定的事务...
这个框架集合提供了一种高效且强大的方式来构建企业级应用,它整合了模型-视图-控制器(MVC)设计模式、依赖注入(DI)与面向切面编程(AOP)以及持久层管理。 1. **Struts2**: Struts2是Apache软件基金会下的一...
SSH整合是Java Web开发中常见的技术栈,由Struts2、Spring和Hibernate三个框架组成,分别负责表现层、业务逻辑层和数据持久化层。这个压缩包提供的版本是Struts2.3.16、Spring4.0.0和Hibernate4.2.8,这是一套相对...
通过与Apache Ant的结合,我们可以构建自动化的工作流程,大大简化开发过程中对持久层的维护工作。 Apache Ant是Java项目的一个构建工具,它以XML格式定义任务,并执行这些任务。在Middlegen-Hibernate的场景中,...
为了简化这一过程,采用Hibernate作为数据持久层的核心技术,具有以下几个显著优点: - **简化数据库操作**:Hibernate通过自动化的ORM机制,大大减少了手写SQL代码的工作量,使得数据库操作更加简单直观。 - **...
Hibernate是Java中流行的持久层框架,专门用于数据库操作。它简化了对象-关系映射(ORM)的过程,使得Java对象可以直接映射到数据库表,无需编写大量的SQL语句。Hibernate提供了查询语言HQL和Criteria API,使得...