在这里,我们来谈谈在项目中怎样用hibernate,这里所说的项目不仅包括小项目,还包括大项目,比如说几亿以上的项目,我前面在做一个市的智能交通系统(投资大概2亿元左右),当时选了hibernate作为数据持久层的开发。
但是开发到现在,整个系统的详细设计方案已经出来了,数据库表的关系也建好了。所以不能通过hibernate帮我们建立表。然后我就可以写特定模块的实体类,然后在使用hibernate的时候就范迷糊了!!!不知道怎么用hibernate,全是用session.createSQLQuery来生成Query,然后自己写SQL执行返回结果集或者影响函数。这样有个很重要的问题,很难维护,我们来谈谈大家在项目中是怎么样使用hibernate,还有大家会使用jpa注解来开发吗?hibernate数据库交通jpaquery

解决方案 »

  1.   

    楼主好机会啊 !  我都没这么好的机会做这么大的项目  平时我们也是用Hibernate的 sql  和 HQL也用
      

  2.   

    我们之前基本上也是写hql语句。尽量先封装好,这样就可以避免写很多语句,写好一些公用的方法
      

  3.   

    hibernate,很好啊,有争议的是认为hibernate影响性能。
    不过我没觉得,可能是因为数据不是很大吧,现在用的jpa,用起来很方便,
    在查看哪些查询代码时不在看到哪些长串的字符串,和字符串拼接,更多的是
    实体类,和属性,数据库的移植就不说了
    在使用上,如果一些固定的查询,比如要查询一个什么东西从哪个时间到时间,这查询语句一般不修改了,只是传入不同时间,会使用具名查询,
    也有很好的分页查询方法,
    如果实在要用原生sql.,也提供了sql查询,并且可以查询的结果直接封装成类。
      

  4.   

    楼主使用ibatis吧或者使用刚出的mybatis就不用createSqlquery了。将所有查询的都写在配置文件中,好维护。只不过就是配置文件多点,在dao层代码写的要相对少很多,还有自己写的sql效率高点哦。
      

  5.   

    我也推荐使用ibatis,hibernate是全自动的,ibatis是半自动的,用起来更加灵活方便。
      

  6.   

    我想问下,为什么不选用jdbc,封装的好,一样不差于任何一种数据处理框架。
      

  7.   

    哎~~~其实用hibernate也有原因的,因为他在公司里面用的会的人多,如果用ibatis的话还得开个培训~但是我用hibernate倒是没多久,不知道你们是怎么用的
      

  8.   

    我建议你们还是不要用hibernate,中期你们会发现各种批量操作杯具,后期你们会发现各种性能问题(尤其是响应要求高的业务)杯具。
      

  9.   

    现在就是jpa注解配合hibernate,本人小菜非常喜欢hibernate
      

  10.   

    用mysql,单表数据600万,没有做优化,简单分页(每页15条)查询一次,耗时300秒
    你可以试试用hibernate,同等情况下,查询时间是多少,比较后就知道差距了。
      

  11.   

    JDBC能做的hibernate都能做,JDBC能达到的效率hibernate也能达到。很多人认为Hibernate的性能很低,我觉得也不能一棒子打死,可能是自己没有用好呢?hibernate也支持批量啊,hibernate也能直接查SQL啊,像楼上说的,你用300秒,你换成hibernate,直接用SQLQuery甚至doWork一样也是300秒啊。我觉得hibernate最重要的还是ORM,然后是帮我们处理好了缓存这些东西,处理好了事务细节等。如果确实觉得hibernate不好用或者性能较低,那使用Mybatis还是极好的,容易控制。