`
七盏茶
  • 浏览: 755 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

主题:如何学习Hibernate

 
阅读更多
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也不要舍本逐末的去学各种五花八门的工具,重点掌握它的对象持久层设计理念。
分享到:
评论

相关推荐

    struts+hibernate投票系统

    支持添加修改删除,更换主题,设计到cookie防止重复投票,是学习struts+hibernate的比较好的资料,本人做这个东西花了不少心思啊

    javaLearning:该存储库将用于发布一些与Java后端主题相关的学习材料,例如JDBC,Hibernate,Spring等。

    java学习该存储库将用于发布一些与Java后端主题相关的学习材料,例如JDBC,Hibernate,Spring等。

    Java/JavaEE 学习笔记

    Hibernate学习笔记..........180 第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射......................185 第四章 操纵持久化对象....................

    SSH框架与AJAX技术的Java_Web应用开发(4页,pdf书籍)不是代码

    避免冗长的理论讲解,而是直击主题,通过具体实例引导读者快速学习 提供典型应用案例,剖析JSP/Servret技术与Struts 2技术在Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具...

    《Spring 3.x企业应用开发实战》:实战案例开发

    学习完本案例后,读者即可胜任使用Spring+Hibernate经典框架开发实际应用的工作了。 本章主要内容:  如何通过UML图描述应用的需求和设计  对于大型的Web应用,应该如何设计类和Web目录的结构  如何设计Web...

    1905-may28-sps-repository:批次储存库

    第三周:Java 核心Java,多线程,序列化,文件I / O,Java 8主题 第4周:SQL RDBMS,PL / SQL,JDBC 第五周:客户端HTML,CSS,JS-比SPARK更深入,另请参阅 第6周:Angular Servlet 第一次我们看到完整的堆栈...

    J2EE学习笔记(J2ee初学者必备手册)

    Hibernate学习笔记..........180 JavaEE@xuxiang 3 Java/JavaEE学习笔记Jonny xuxiang5612@sina.com 第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射....

    低清版 大型门户网站是这样炼成的.pdf

    请抱着学习的态度下载此资料。 总共900多页!!!!!!! 第1篇 技术篇 第1章 大型门户网站架构分析 3 1.1 大型门户网站与小型企业网站的区别 3 1.2 高性能、高负载门户网站架构剖析 9 1.2.1 服务器操作系统...

    基于安卓Android的问卷调查系统设计+sql数据库(毕设源码).zip

    具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 # 安卓Android问卷调查系统设计 系统开发环境: Windows + Myclipse(服务器端) + Eclipse(手机客户端) + mysql数据库 服务器也...

    安卓Android问卷调查系统+源代码+文档说明+数据库.zip

    问卷信息: 记录编号,问卷名称,发起人,问卷描述,发起日期,结束日期,主题图片,审核标志 问题信息: 记录编号,问卷名称,问题内容 选项信息: 记录编号,问题信息,选项内容 答卷信息: 记录编号,选项信息,用户 留言信息:...

    JavaLearning:我对Java的学习

    Java学习算法结构leetcode和poj的主题 IDEA_Projet春天的一个临时主题需要重新编辑 JDBC在Java中使用JDBC Java进阶注解退货虚拟机 Java基础根据日历推荐jdk1.7 LocalDate之后的日期数学随机的字符串StringBuilder...

    formula-one-api:一级方程式 API

    我制作这个项目是为了学习和使用 Spring、REST 和 JPA/Hibernate,并在不同的关系数据库上进行测试。 涵盖以下主题: 保存有关一级方程式的数据的关系数据库。 公开数据库中数据的 REST 服务。 使用 swagger ...

    安卓Android新闻发布系统app+源代码+文档说明+数据库.zip

    活动信息: 活动id,活动主题 ,活动内容,报名电话,参与名单,发起人,发布时间 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均...

    Java通用后台管理系统源码 JAVATYHTXT.rar

    2、三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3、分别封装了模型层、控制层、业务逻辑层和数据持久层的通用操作模块,层次分明,大大减少代码冗余,二次开发效率高。 4、系统是公司多个项目的...

    Spring+3.x企业应用开发实战光盘源码(全)

     第12章:讲解了如何在Spring中集成Hibernate、myBatis等数据访问框架,同时,读者还将学习到ORM框架的混用和DAO层设计的知识。  第13章:本章重点对在Spring中如何使用Quartz进行任务调度进行了讲解,同时还涉及...

    leetcode不会-rentumbokon.github.io:个人博客

    Hibernate AOP Maven Spring安全 REST 和 API 约定以及 HATEOS 和 Richardson 成熟度模型 MVC 会话与标记化以及 Cookie Spring Boot 介绍 Spring Boot - 异常处理 Spring 数据 JPA 存储库 微服务 春云 ETL 电源 BI/...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    随着博客人数的增加, Blog 作为一种新的生活方式、新的工作方式、新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构:网络信息不再是虚假不可验证的,交流和沟通更有明确的选择和方向性,单一...

    CIT360Sandbox:Lee Barney 在 BYU-Idaho 的面向对象编程 II 课程的沙盒代码

    包括的主题: Java 集合JavaBeans HibernateJSON、二进制和 XML 数据序列化套接字输入/输出HTTP URL 通信JUnit 安全并行处理/线程MVC模式应用程序控制器模式UML 用例图用例描述状态图序列图系统级测试

    Maven权威指南 很精典的学习教程,比ANT更好用

    Maven权威指南 Authors Tim O'Brien (Sonatype, Inc.) , John Casey (Sonatype, Inc.) , Brian Fox (Sonatype, Inc.) , Bruce Snyder () , Jason Van Zyl (Sonatype, Inc.) , Juven Xu () Abstract ...

    Spring In Action中文 第三部分

    你将学习如何使用Spring管理大量的基础设施代码,这样你就可以将注意力集中在真正的问题上——重要的业务需要。 本书内容: ·使用Hibernate、JDO、iBatis、OJB以及JDBC开发持久层; ·声明式事务与事务管理; ·与...

Global site tag (gtag.js) - Google Analytics