Java杂谈(十二)——ORM

解决方案 »

  1.   

    不喜欢hibernate
    后台对于框架的需求远不如前台迫切,正因为jsp、servlet的乱所以对于前台框架如struts等的需求很强烈而且收效明显。
    但是后台(即使是hibernate)始终是介于成熟的数据库访问机制jdbc和成熟的数据库之间的一种定位尴尬的东东。做的事情少了不够分量,做的事情多了...在两大成熟的东东之间做多少算合适?hibernate已经做的过多了,已经大大限制了hibernate的适用范围。
    无论是struts、hibernate这些框架的目的比较一致和明确,那就是让具备编程思路但是不愿牵扯过多细节的人们更轻松的开展编程,struts等前台框架完美的做到了,而hibernate没有做到或者说做的很不完美,给我一种很大块的鸡肋的感觉。用熟struts的人可以根本不会servlet甚至jsp。但是我感觉用熟hibernate的人已经都是经验丰富的老鸟了,更多是在玩hibernate。比较之下ibatis的思路还是不错的。
    其实纵观成功的开源框架能发现,他们的特点就是拒绝大而全、专注做好一件事、完美实现一个核心设计思想足矣。
      

  2.   

    同意楼上的,Hibernate中的延迟加载看上去似乎是个玄乎的东西,
    但是真正在分层体系中延迟加载机制就是一个鸡肋(跟session严
    密的绑定在了一起,session一关延迟就无法做了),这一点在DAO
    中是十分明显的,但这也是一个关键的问题,看看现在数据表的关联
    度吧,引用表是纷乱烦杂的,而且session也不可能一直开着。一般在SQL性能要求很高的应用中不会采用Hibernate的,采用iBatis
    居多,其可以方便地进行SQL优化。
      

  3.   

    向4,5楼的朋友学习,呵呵!分析得很好啊,很多人甚至更倾向于原始的JDBC,个人觉得Hibernate的关联关系也有些混乱,很多时候在Java对象的映射上有太多种选择,可以用引用,也可以用索引外键,是否一对多都需要用集合也需要因情况而定……延迟加载受session的限制也是没有办法的事情,毕竟从数据库取数据还是要依赖于connection
      

  4.   

    Ant_Yan,我也是个大四的学生了,学习JAVA有近半年了,和你的差距实在是有天壤之别,比起你的大学四年,我的前几年实在混帐透了,我真的很崇拜你,羡慕你的才华。你的前途不可限量啊。
      

  5.   

    是啊,在学校的学生中应该好好地把握好自己的四年,不要浪费时间了,时间是过得很快的。我不是学计算机的,不是很了解学校的计算机教育中学些什么东西。但我曾看到过一篇文章,
    说的是,学计算机的学生在校四年里,应有超过10万行的代码!再次看到Ant_Yan的这篇文章感触很深,真地很希望在校学生能不要把时间都放在游戏上,过
    去的就让它过去吧,从新的起点开始要求自己。
      

  6.   

    晕,没想到这么老的帖子都还有人看,小弟真是非常感动啊……其实技术是无止境的,只要大家多交流,虚心学习,毫不保留,所有人都可以成为牛人的。我个人因为记性实在不好,很健忘,所有非常喜欢把认为本质重要的东西总结下来,拿出来给大家看也是希望尽点微薄之力。最近都在家里帮人做毕设的代码,脱去了Spring框架单独用Hibernate,确实对ORM技术的优点和缺点又有了进一步的认识!还是那句话,不要盲从人云奕云,技术上做到了还要多问一个为什么,抓住原理才是关键!呵呵,随便说说,其实也没什么资历,见笑了!顶11楼火龙果的意见,周末回学院一定跟学弟学妹们传达您的宗旨,让他们少玩游戏,多做点有意义的事情,^_^
      

  7.   

    顶一把啦,讲的很好,我正在为项目做ORM选型呢