class Item {
  String itemName;
  List<LineItem> lineItems;
  User user;  
}就这么一个对象查询,对不同的需求
1:取Item,延迟加载LineItem,User
  select item from Item item 2:取Item及关联的User,LineItem  select item from Item item join item.user u left join fetch lineItems li"一句
List<Item> itemList=sesion.createQuery(hql).list()
即可请问你用jdbc怎么做到比这更简洁,更OO?

解决方案 »

  1.   

    hibernate速度比jdbc慢很多,特别是大量的查询的时候.我感觉懂hibernate最大作用是找工作多一个技能,其实招聘人员只要求你懂hibernate,但实际工作方法可以随意的.
      

  2.   

    我也是刚刚自学了hibernate
    自己感觉 还是比较好的
    1 不用自己在去用JDBC去连接数据库 少写了很多SQL语句,让你把精力都放在写逻辑层
    2 把数据库的表都同过XML映射的关系 形成实体bean 对于面向对象来说 很好理解的
    3 不过hibernate的重点应该放在ORM(对象到关系的映射),去真正的理解ORM,封装底层数据库的框架有很多,只要你通过hibernate理解ORM,去学别的框架也是很容易的事情.
    4 通过***.hbm.xml可以写出一对多 多对多等他们之间的关系等
     这只是我个人的见解!!你所说的HQL语句 其实和SQL语句没有什么大的区别 比如Query query=session.createQuery("from Student");这里的Student是你的实体bean的名字 不是表明 
      

  3.   

    尽量用QBC而不是HQL
    但相对的对于数据库设计的设计要求也就要高一些
      

  4.   

    不用hibernate怎么体现JAVA的各种模式啊?怎么体现你和别的coder的区别啊?那样你的代码会有badsmall懂不?
    趁着还没被淘汰快用吧!然后等待下一次技术变革的席卷!
    一代一代家狗师就是这么培养地!
      

  5.   

    Hibernate的ORM会让很多对DB设计很熟的人很不适应,其实Hibernate用来将数据recordset装载到DomainObject里面就十分的方便。不过对于那些关联,尤其是多对多建议还是不要用。可以看看我blog上面写的ORM如何用才不是滥用。
      

  6.   

    hibernate在bo至vo的转换及简单对象表的处理上比较方便;同时将数据库数据当成对象进行修改、查询的方式也很不错。
    另一方面:对于复杂对象,用起来确实比较麻烦,也不可能去配那么一对多关联;数据库表变更导致的xml配置修改更让人难以忍受;效率不够高。综合而言,比jdbc要好用,但复杂度有待降低。对于数据库复杂度较高的产品/项目,不推荐hibernate。
      

  7.   

    hibernate速度比jdbc慢很多,特别是大量的查询的时候.我感觉懂hibernate最大作用是找工作多一个技能,其实招聘人员只要求你懂hibernate,但实际工作方法可以随意的.
      

  8.   

    hibernate 有用是有用,不过就是比较难用,orm很多可以找自己喜欢的方法就行了
      

  9.   

    楼上真理Hibernate正在学习中...
      

  10.   

    是一种思想,只要明白了持久化这种思想,无论JDO、hibernate、Ibatis都是一样的东西!
      

  11.   

    框架的应用确实是很麻烦的事情,我现在肯定是没有能力去创建什么框架,首先就是根本没有任何思想思路、哪来的下一步实现?但是相对于SSH等这些框架,我更偏爱于数据结构、操作系统以及产品,因为SSH等说到底就是B/S结构框架,其核心就是方法论:为了改善程序逻辑结构、改进工厂化生产软件的方法论。从这个层面上看,我觉得现行框架不再笼罩光环,甚至于我再看框架对于我的意义仅仅是有助于我更深入的学习编程、学习数据库、学习网络协议而已。
      

  12.   

    说hibernate难用的各位,你们还没有完全理解Domain Model的设计方式,当你们能够完全理解了Domain Model设计的时候,你们就能驾驭hibernate了,如果纯粹只要封装jdbc,你们可以选择favoor(www.favoor.net)框架,他提供了几乎所有的jdbc代码封装,而且支持范型,不需对返回的对象进行类型转换,使用相当简单,而且有功能强大的db标签。
      

  13.   

    个人案例:10个左右使用hibernate的项目运行中。
      

  14.   

    hibernate我也用过一段时间,对于数据库压力不大的项目,推荐用一下,开发起来比较方便。
    但对压力大的程序就不要用了,它本身的速度就不快,访问量再一大,结果可想而知。
    有时候程序越直接,越有效。
    各有各的好,看情况而定,好咱就用,不好,扔进垃圾筒,呵呵。
    以前做过的OA系统,用的是hibernate,现在做的是网络广告联盟系统,追求速度和性能,就没有用它。
      

  15.   

    我在最近的项目中深切的感受到,在多数情况下,直接用jdbc不比比hibernate快多少,相反,由于对现实的妥协(赶项目进度,开发人员水平限制等),有时反而会比hibernate慢。
      

  16.   

    hibernate看你怎么用了!
    建议绝对不要用一对多关系,可能的情况下多使用批量操作的语法,而不是逐条循环.这样就只多了一步解析,应该影响不大.
    开发效率还是相当高的.
      

  17.   

    哎,为什么JAVA论坛或者Blog里总是讨论什么东西好,什么东西不好啊的多呢,真正研究东西的人却特别少
      

  18.   

    hibernate对表结构比较简单的项目还是有一定的开发效率的。我觉得用Hibernate,你的表结构最好不要有外键关系,要不,你不知道要多出多少个对象--hibnerate把什么都看成对象,主外键关系就直接在程序中控制,这样还简单一点,不然复杂点的关系,你写个hql都够你受的。还有hibernate的load,似乎在理论上有提高效率,但实际开发中,都会使用get。要不hibernate的那些所谓的临时对象等等对象弄得你够呛。在我看老,hibernate在表结构简单的项目中确实提高的开发效率,特别是跟spring结合。但在大型项目中最好不要用,哪怕你写jdbc都比hibernate强很多。
      

  19.   

    1 不用自己在去用JDBC去连接数据库 少写了很多SQL语句,让你把精力都放在写逻辑层
    ===================================================
    不管你用Criteria或者是hql,首先你必须要知道sql应该怎样写
    如果这点明确了,你用Criteria或者hql的工作量不会比单写sql语句小
      

  20.   

    是不是我太落后了,hibernate只懂点,没做过项目
      

  21.   

    这两个星期做了个小项目(我们学校里元旦晚会的投票系统),底层就用了Hibernate,挺好用的,就是速度有点慢,不过加上Ajax会好的很多哦,用JAVA和AJAX结合太好,,
      

  22.   

    呃。目前使用hibernate来看。
    简单点的程序用hibernate开发速度快,不过运行速度慢。
    看着eclipse的反应时间,本来是5K多S,一加上这框架都要了1-2W多S了。
    汗……也许是我还不太会用吧 =。=
    至于复杂点的程序,我也还没做过。就不好做评论了。