我怎么感觉耗无用处?
多数据库、数据持久化、对象化操作数据库很容易实现的技术,他到底有什么好的?对于初学者简单吗?我觉得很麻烦,光打字输入xml就比手写select语句麻烦很多。

解决方案 »

  1.   

    其实hibernate是针对JAVA的OOP(面向对象)而产生的,习惯JAVA思想的人,总是希望把什么都对象化,如果像我这样从ASP,Delphi转过来的,刚开始也不明白为何要MVC,Hibernate,当时我觉得像DELPHI那样写一些通用的函数或过程也可以使项目很有条理性。现在JAVA用熟了才知道,JAVA程序设计是用注重模式很设计的,现在我写DELPHI程序时,不知不觉也总是用OOP的思想来想解决方案的,不对象化老是觉得怪怪的。
    如果你的应用不是MVC架构的,我觉得用HIBERNATE意义不大,反而会使存取过程效率更低。
      

  2.   

    楼上说的有道理!“如果你的应用不是MVC架构的,我觉得用HIBERNATE意义不大”!一般的应用如I/O,多线程,网络,JSP,javabean,Servlet就行了!如果你的项目要求用MVC架构的话那就用Hibernate 吧
      

  3.   

    terry_yip你误会我的意思了,我确实是用MVC框架,而且已经用了4年,但之前一直用.NET和PHP语言,类似的框架我在C#和PHP中都是实现过,当时用C#和PHP开发这类框架也是觉得用OO的方式访问数据库很简单,把某些数据持久化也提高效率。现在转java,框架是满天飞啊,hibernate是接触的最早的一个,一上来就被它复杂的配置文件吓死了,要访问一个表需要写两个java和一个xml文件,我只是觉得这样有必要吗?是不是太繁琐了。我用C#写的框架中要实现这些功能只需要些一个.cs类即可。
    hibernate的多数据库支持、数据持久化、对象化操作数据库这三个特性都是很简单的技术,所以我很奇怪它到底有什么意义?数据持久化应该分三个层次,第一:单一程序内,第二:多应用程序之间,第三:多服务器多应用程序之间。hibernate好像只能实现第一个吧?如果能实现后两个倒是可以考虑使用它的部分代码。
      

  4.   

    再重申一次,我用MVC很多年了!
      

  5.   

    想法不同,我倒是觉得不能只从编写代码方便看问题,你的select写的很爽,用框架是显得死板。但如果系统很大,维护时就够你忙的了,我用hibernate觉得很方便,结构清楚,不容易出错,出了错误也好找
      

  6.   

    那我按肯定你没有用eclipse+myEclipse使用eclipse+myEclipse来写hibernate配置xml 和pojo类+类的映射xml文件 很快很简单
      

  7.   

    重申一次,我写框架也很多年,我也不是手写select,也是通过自己写的工具自动生成.cs/.php类,代码是统一的,目录结构也是统一的,所有的调用都是统一的,大大小小的项目都做过,感觉维护和升级都很方便。我要所说明的是hibernate太复杂了,没必要搞得那么复杂,做一个工作得写3个文件,你也许会说用Eclipse可以很轻松的使用它,我确实也这么认为,但是JBuilder呢,有多少人都是手写hibernate的?手写hibernate是减少还是增加维护成本呢?我刚从C#和PHP转到JAVA,确实被java的复杂镇到了,不是说java有多难,关键是像hibernate这类第三方工具使用都太繁琐,为什么不能用更轻巧更强大的框架实现呢?如果hibernate只立足于大项目,给中小项目带不来什么优势,那还有什么意义?有几个人有机会开发大项目?还想请教一个问题,hibernate能否实现多服务器多应用程序之间的数据持久化,或者需要通过其它技术一起实现?如果只能实现单一程序中的数据持久化那真的没什么意义。
      

  8.   

    光打字输入xml就比手写select语句麻烦很多
    --------------------------------hibernate 有配套的工具,这些不用你写一个字啊..sql,xml,class 三者任意转换..呵呵,你觉得打字多了就嫌麻烦了?? 实际上有工具啊.. 叫什么 middelgen ?? 好几年没用,忘记了..
      

  9.   

    hibernate已经很轻了,你还觉得复杂定是没学好
      

  10.   


    重申一次,我写框架也很多年,我也不是手写select,也是通过自己写的工具自动生成.cs/.php类,代码是统一的,目录结构也是统一的,所有的调用都是统一的,大大小小的项目都做过,感觉维护和升级都很方便。
    ---------------
    你都自己写框架了,还要学hibernate干什么我要所说明的是hibernate太复杂了,没必要搞得那么复杂,做一个工作得写3个文件,你也许会说用Eclipse可以很轻松的使用它,我确实也这么认为,但是JBuilder呢,有多少人都是手写hibernate的?手写hibernate是减少还是增加维护成本呢?
    ---------------------------------------------------
    用java 1.5的话,hibernate3支持 EJB3 persistence annotation,直接在代码里写ORM的annotation,连xdoclet生成配置文件hbm都省了,相当方便
    加上hibernate提供的SchemaExporter,可以从java代码直接生成数据表关键是像hibernate这类第三方工具使用都太繁琐,为什么不能用更轻巧更强大的框架实现呢?
    --------------------------------------------------
    如果你知道还有“更轻巧更强大”的orm框架,请告诉我,我也想知道,呵呵
    不过你可以考虑一下iBatis如果hibernate只立足于大项目,给中小项目带不来什么优势,那还有什么意义?有几个人有机会开发大项目?
    ------------------------------------------------
    什么叫大项目什么叫小项目?
      

  11.   

    hibernate带来的只是关系数据库的对象化,带来的结果是把整个项目完全的“面向对象化”。java/j2ee强调的是思想,而不是“快速开发”。如果你想5小时做好一个小项目的话,你大可以不用hibernate,你甚至连DAO都可以不用,甚至更可以把sql写在页面,同样可以满足到项目的需求。
      

  12.   

    楼主用.net的,那么楼主觉得.net世界里为什么NHibernate会这么火?
      

  13.   

    如果楼主真是搞框架的,应该把自己希望的方式用Java和JDBC实现出来。
    Hibernate当然有自己的优势,但他针对的也不是100%的项目。
      

  14.   

    没有完美的东西,只有更加好的东西!
    Hibernate在对象持久化操作框架中不是完美的,如果楼主看到缺点,那就完善啊.这样不是很好吗?
      

  15.   

    我也是刚从DELPHI阵营转入JAVA的,我觉得只能这样解释:sun公司故意把JAVA体系搞得这么复杂,生产力这么低下,这样将导致软件行业需要更多程序员,需要更多的JAVA资询,SUN公司也可以从中赚取更多的利润.
    如果没有JAVA这么复杂,开发效率低下的开发工具,软件开发都只需要很少的人员,那我们这么这将会很多兄弟失业,所以我们在这应该感谢SUN公司,间接地解决了全世界的软件就业问题!一个鲜明的对比,我们一个项目,以前用delphi和c/s结构做的,只需要一个前台程序UI员就够了,而现在换成JAVA,EJB,servlet,struts一大堆的东西,用浏览器完成类似的界面,要五个程序员在相同的时间内才能完成同样的工作量.从这个角度来说我支持JAVA,否则明天你和都可能失业!
      

  16.   

    回楼上:中小型应用
    --------------初始开发----需求变更-----增加/变更功能-----后期维护,系统扩展
    delphi, c/s-----4个月---------4个月----------2个月----------系统耦合,层次不清,无法维护
    J2EE -----------7个月---------2个月----------半个月---------系统高度解耦,层次清晰,可维护可扩展
      

  17.   

    不要用已经习惯了一种思维去消极考虑另一种解决问题的方式,的确不用Java也能很容易实现类似功能,可为什么N多人能写框架,只有1/N的框架是被N个人接受的
      

  18.   

    赞成楼主观点,Hibernate是个垃圾.
      

  19.   

    我用myeclipse + struts + spring + hibernate
    前面两个觉得狠不错的。可是对 hibernate 感觉是画蛇添足,垃圾
    美其名约什么对象化,不用熟悉sql语句。
    我支持搂住
      

  20.   

    hibernate是垃圾,都是人云亦云的主,实际用hibernate做几个项目就知道怎么回事了。如果想实现o/r mapping,用ibates也比hibernate强百倍。BTW,俺们现在不用hibernate,也不用jdo/ibatis等,直接用spring jdbctemplate。
      

  21.   

    楼主啊,不要只想到写出来....
    你光光说写出来,HIBERNATE好麻烦,写那么多文件
    如果你用JDBC...不说别的,就是改个数据库登陆密码,你就要改N个文件
    如果用了好的框架,你只要改一个文件就OK了在好的框架上搭建,必然比较烦琐...但是带来的是以后维护的便利
      

  22.   

    实际上楼主不是在说HIBERNATE垃圾,是在说框架垃圾
      

  23.   

    java的方向就是让你感觉到它的复杂,它的强大。
    而.net却是让你觉得原来编程是这么的简单。
      

  24.   

    兄弟都去学.net吧,我一个人学J2EE。谢谢
      

  25.   

    Hiberante绝对不是垃圾,这个不用大家来评价,EJB3.0的持久化规范就可以看做是Hibernate的"升级"(复杂化).如果它无价值,那么EJB3.0规范制订时,会这么看重Hibernate吧?专家的脑袋应该不会坏掉
      

  26.   

    Hibernate用好了就真好;用不好就真不好;说实话,持久层用什么实现不重要,因为对外都提供了接口类;我个人倾向于JDBC;我想许多人和我一样都自己封装了操作SQL的包;用的熟了感觉就是好