如何学习Hibernate
文章来源:转载 作者:robbin 原文地址: http://www.iteye.com/topic/255
Hibernate入门容易,掌握精通我也不敢自夸。我第一遍看Hibernate文档的时候也觉得很吃力,但不是因为Hibernate难掌握而感到吃力,是因为Hibernate文档处处都是持久层设计的经验和最佳实践。Hibernate文档准确的来说,绝大部分内容都在讲对象的持久层设计,而不是简单的Hibernate使用,使用问题查Java doc就够了。所以学习Hibernate,主要是在学习持久层的设计模式,如果你把Hibernate文档都看完了,还整天只会提那些 Hibernate的配置问题,Hibernate的类调用问题,我觉得这样的人还没有真正的入门,算是白学了。
我对Hibernate 的那些配置也不是特别纯熟,每次写hbm,都要对照文档一点点的检查;类调用参数也不太记得,写代码也要Java doc随时备查。但是我在学习Hibernate的时候即集中所有精力来理解Hibernate的运行原理,集中精力来掌握持久层设计应该把握的原则和技巧,这些才对我是最重用的东西。毫不夸张的说,学习完Hibernate,我对JDBC的编程也提高了一大截,更不要说对于J2EE架构的持久层的框架设计,基本上是了然于胸了,即使将来换了API,不用Hibernate的,改用JDO,Castor什么的,这些经验一样照用。
学习Hibernate主要不是在学习Hibernat怎么配置,用工具怎么生成hbm文件,如果你把重点放在这里,基本上等于白学了Hibernate。Hibernate的精华在于无与伦比的灵巧的对象持久层设计,这些持久层设计经验不会因为你不用Hibernate而丧失掉,我自己学习Hibernate,已经明显感觉到对持久层设计能力已经长了很多经验值了,这些经验甚至不光可以用在Java上,用在.net上也是一样。所以Hibernate配置的学习,我只是简单看看,用的时候知道到那里去查就行了,一堆复杂的生成工具我根本就看都不去看,这样算下来,掌握Hibernate的配置,可以用Hibernate来替代JDBC写程序,不过花上3天时间就足够了。我想3天时间对你来说不算很奢侈的学习代价吧。
为什么我这么强调学习Hibernate的对象持久层设计理念呢?那就看你的理想是想一辈子做一个程序员呢?还是想向更高的方向发展呢?从纯做技术的角度来说,职业发展的最高点是“系统架构师”,Bill Gates不是还叫做微软的首席系统架构师吗?System Architect职位需要的是你的学习和领悟能力,如果你不能把学习Hibernate得到的设计经验运用到其它地方,那么你是失败的,也没有资格做 System Architect。
不管JDO也好,Hibernate也好,TopLink也好,CocoBase也好,还是 Castor,还是什么Torque,OJB,软件的使用和配置方法可以各异,但本质上都是ORM,都是对JDBC的对象持久层封装,所以万变不离其宗,如果你完整的学习和掌握Hibernate花了1个月的时间,那么你再学习OJB的时间不应该超过1个星期,因为你已经把对象持久层设计都了然于胸了,你需要的只是熟悉一下OJB的API和配置罢了,至于怎么运用OJB进行持久层的开发你早就已经熟悉了。
所以当你掌握了两种以上的ORM,你应该能够不拘于使用的ORM软件的限制,设计出适合于你的项目的持久层来,这才是System Architect的水准。用金庸小说来打个比方来说吧,张无忌学太极剑,只记剑意,不记剑招,这才是真正的高手,而低手就只会去学习剑招,而不去领会剑招背后蕴含的剑意,所以一辈子都是低手,永远不能真正学会太极剑。所以周颠看到张三丰第二次演示太极剑,招式完全不同就以为是另一套东西,其实本质上都一样。学习Hibernate也不要舍本逐末的去学各种五花八门的工具,重点掌握它的对象持久层设计理念。
分享到:
- 2007-02-12 10:39
- 浏览 2492
- 评论(3)
- 论坛回复 / 浏览 (3 / 2454)
- 查看更多
相关推荐
《Hibernate DOC中文文档》是学习Hibernate框架的重要参考资料,它详细阐述了Hibernate的核心概念、配置、对象关系映射(ORM)以及各种操作技巧。对于初学者和有经验的开发者来说,这份文档都是掌握Hibernate不可或...
【标题】:“学习hibernate必看ppt--总结的很全面” 这个标题表明这是一个关于Hibernate框架的综合学习资料,特别适合初学者或者需要深入理解Hibernate的开发者。它可能包含了一系列PPT,旨在全面概述Hibernate的...
标题“学习hibernate第二天”表明我们正在探讨的是关于Hibernate框架的初步学习过程,特别是第二天的学习内容,这通常涉及到更深入的理论和技术细节。Hibernate是一个Java语言中的对象关系映射(ORM)框架,它允许...
在"spring 学习 hibernate例子"中,我们将探讨如何将这两个框架结合使用,构建一个高效、灵活的应用。首先,我们需要理解Spring如何管理和控制Hibernate的SessionFactory。Spring通过其HibernateTemplate或...
Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发人员能够更加专注于业务逻辑,而不需要关心...对于初学者,深入学习Hibernate的文档和实践案例,无疑是快速掌握这项技术的关键。
【深入学习Hibernate】这篇文章主要介绍了Hibernate这一流行的Java ORM框架,旨在帮助初学者更好地理解和应用Hibernate。Hibernate是一个开源的持久层框架,它简化了Java应用程序与关系数据库之间的交互,实现了对象...
《学习Hibernate:从这里开始》 Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用面向对象的方式处理数据。对于初学者来说,理解和掌握Hibernate的核心概念、配置...
“学习Hibernate的第二章”通常会涵盖以下核心主题: 1. **Hibernate环境配置**:在开始使用Hibernate之前,我们需要设置相关的环境,包括下载Hibernate库、添加依赖到项目中(对于Maven或Gradle项目)、配置...
【标题】"从今天起开始学习hibernate3" 暗示了我们将探讨的是Java领域中的持久化框架Hibernate 3。Hibernate是一个流行的开源对象关系映射(ORM)框架,它允许开发人员使用面向对象的方式来操作数据库,而无需直接...
**hibernate入门学习笔记+源码** ...学习Hibernate的过程中,结合文档和源码进行实践是非常有效的学习方法。通过阅读这些笔记和源码,你可以深入理解Hibernate的工作原理,从而熟练掌握这一强大的ORM工具。
在IT行业中,Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑,而不是底层的数据存取细节。本教程主要针对初学者,将...祝你在学习Hibernate的路上取得丰硕的成果!
理解ORM的概念是学习Hibernate的第一步。 2. **Hibernate配置**: 在使用Hibernate时,我们需要配置一个名为`hibernate.cfg.xml`的文件,其中包含了数据库连接信息、方言、缓存策略等。学习如何正确配置这些参数...
深入学习Hibernate学习文档由浅入深的详细介绍了Hibernate的原理和配置方法。文档通俗易懂。
**J2EE学习Hibernate** 在Java企业级应用开发中,J2EE(Java 2 Platform, Enterprise Edition)是一个广泛使用的框架,它提供了多种服务和组件,以支持分布式、多层的Web应用程序。而Hibernate,作为J2EE的一部分,...
**学习Hibernate的关键知识点** 1. **实体管理**:理解Hibernate如何将Java对象映射到数据库表,以及Entity、Id、GeneratedValue等注解的用法。 2. **会话和事务**:掌握SessionFactory、Session和Transaction的...
本人精心搜集了学习hibernate的资料,一些是我以前学习用的,一些是新搜集的 资料。 <br>搜集清单和说明 1:hibernate学习源码,这是我以前做练习的代码,希望对感兴趣的朋友 有些帮助。 2:...
### Hibernate学习知识点详解 #### 1. Hibernate简介与安装配置 **标题:** Hibernate学习 **描述:** Hibernate 学习 Hibernate学习.pdf **标签:** Hibernate 学习 Hibernate学习.pdf **知识点详解:** ####...
Java学习Hibernate是一个深入理解Java对象持久化技术和ORM框架的重要过程。Hibernate是一个强大的、开放源代码的对象关系映射框架,它极大地简化了Java开发者在数据库操作中的工作。以下将围绕标题和描述提供的信息...
### 开始学习Hibernate #### Hibernate简介与配置 Hibernate是一个开源的对象关系映射(Object-Relational Mapping,简称ORM)框架,用于Java应用中简化数据库操作。通过将对象模型与关系型数据库模型之间的转换...