Hibernate入门容易掌握精通我也不敢自夸我第一遍看Hibernate文档的时候也觉得很吃力但不是因为Hibernate难掌握而感到吃力是因为Hibernate文档处处都是持久层设计的经验和最佳实践
Hibernate文档准确的来说绝大部分内容都在讲对象的持久层设计而不是简单的Hibernate使用使用问题查Java doc就够了所以学习Hibernate主要是在学习持久层的设计模式如果你把Hibernate文档都看完了还整天只会提那些 Hibernate的配置问题Hibernate的类调用问题我觉得这样的人还没有真正的入门算是白学了
我对Hibernate 的那些配置也不是特别纯熟每次写hbm都要对照文档一点点的检查类调用参数也不太记得写代码也要Java doc随时备查
但是我在学习Hibernate的时候即集中所有精力来理解Hibernate的运行原理集中精力来掌握持久层设计应该把握的原则和技巧这些才对我是最重用的东西毫不夸张的说学习完Hibernate我对JDBC的编程也提高了一大截更不要说对于JEE架构的持久层的框架设计基本上是了然于胸了即使将来换了API不用Hibernate的改用JDOCastor什么的这些经验一样照用
学习Hibernate主要不是在学习Hibernat怎么配置用工具怎么生成hbm文件如果你把重点放在这里基本上等于白学了HibernateHibernate的精华在于无与伦比的灵巧的对象持久层设计这些持久层设计经验不会因为你不用Hibernate而丧失掉我自己学习Hibernate已经明显感觉到对持久层设计能力已经长了很多经验值了这些经验甚至不光可以用在Java上用上也是一样
所以Hibernate配置的学习我只是简单看看用的时候知道到那里去查就行了一堆复杂的生成工具我根本就看都不去看这样算下来掌握Hibernate的配置可以用Hibernate来替代JDBC写程序不过花上天时间就足够了我想天时间对你来说不算很奢侈的学习代价吧 为什么我这么强调学习Hibernate的对象持久层设计理念呢?那就看你的理想是想一辈子做一个程序员呢?还是想向更高的方向发展呢?从纯做技术的角度来说职业发展的最高点是系统架构师Bill Gates不是还叫做微软的首席系统架构师吗?
System Architect职位需要的是你的学习和领悟能力如果你不能把学习Hibernate得到的设计经验运用到其它地方那么你是失败的也没有资格做 System Architect
不管JDO也好Hibernate也好TopLink也好CocoBase也好还是Castor还是什么TorqueOJB软件的使用和配置方法可以各异但本质上都是ORM都是对JDBC的对象持久层封装所以万变不离其宗如果你完整的学习和掌握Hibernate花了个月的时间那么你再学习OJB的时间不应该超过个星期因为你已经把对象持久层设计都了然于胸了你需要的只是熟悉一下OJB的API和配置罢了至于怎么运用OJB进行持久层的开发你早就已经熟悉了
所以当你掌握了两种以上的ORM你应该能够不拘于使用的ORM软件的限制设计出适合于你的项目的持久层来这才是System Architect的水准
用金庸小说来打个比方来说吧张无忌学太极剑只记剑意不记剑招这才是真正的高手而低手就只会去学习剑招而不去领会剑招背后蕴含的剑意所以一辈子都是低手永远不能真正学会太极剑所以周颠看到张三丰第二次演示太极剑招式完全不同就以为是另一套东西其实本质上都一样学习Hibernate也不要捨本逐末的去学各种五花八门的工具重点掌握它的对象持久层设计理念