这些天主要精力放在学习Hibernate上,一点点心得,写一下。
学习Hibernate的时候即集中所有精力来理解Hibernate的运行原理,集中精力来掌握持久层设计应该把握的原则和技巧,这些才是最重用的东西。
学习Hibernate主要不是在学习Hibernat怎么配置,用工具怎么生成hbm文件,如果你把重点放在这里,基本上等于白学了 Hibernate。Hibernate的精华在于无与伦比的灵巧的对象持久层设计,这些持久层设计经验不会因为你不用Hibernate而丧失掉,这些 经验甚至不光可以用在Java上,用在.net上也是一样。
为什么要这么强调学习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也不应该舍本逐末的去学各种五花八门的工具,重点掌握它的对象持久层设计理念。
但是这个掌握的过程并不是讲买了多少本书,也不是看了多少经典著作。靠的是具体的实践。只有在具体的一个Project中去确确实实地应用它。如果你这样做了,不用看多少大牛的经典,一份"Hibernate Reference"就已经足够了。
一家之言,可能有失偏颇。。。