Hibernate:关于复杂的SQL统计语句是不是就不适合使用Hibernate了

写了一年多的oa系统 普通的增删改查还好 但是遇到复杂的统计功能 都是直接写个sql然后干脆就用jdbc了 是不是Hibernate也可以很好的处理这种问题只是我没掌握呢 请前辈指点下你们都是怎么办的?

在这方面我也和你有同感。

不同的ORM工具各有其优缺点和适用范围。Hibernate使数据操作对象化,在对象和数据之间做了很好的衔接,非常适用于数据的维护类操作和明细查询操作,而对于数据统计类的操作则显得作用不强。Hibernate历来支持原生的SQL,较新的版本也支持对SQL、Stored Procedure甚至XML的封装,也可以像iBatis,现在叫作MyBatis,对部分字段封装。Hibernate的新功能越来越像iBatis了。iBatis或MyBatis是对SQL的封装,相对简单、灵活,性能也相对好些,但不是绝对的,其性能的好坏主要取决于编写的SQL的质量,而iBatis的动态SQL本身就是对性能的一种威胁。iBatis或MyBatis适用于做各种数据操作,不过需要良好的SQL能力和对具体数据库(如Oracle、SQLServer)的了解,故而在维护、变更或数据库升级、迁移时比较复杂。较新的MyBatis提供了一些类似于Hibernate的特征,比如可以支持父子表对象之间的双相关联;而另外一些特性,比如注解式的SQL封装、通过代理根据接口定义自动实例化DAO,似乎比Hibernate还要好些。JDBC 3.0和4.0比以前也增加了一些新特征,具体的我还没有仔细研究。呵呵
在我看来,报表是需求中最不稳定的部分,形式多样、变化多端,无论是自己编写的还是第三方的公共组件,都只能在基础查询和表现形式上加工;具体的报表逻辑仍需手工开发。所以无论用哪种技术做报表,在报表逻辑方面的复杂度是相同的。我一般会采用相对最简单的技术条件来设计报表,避免程序员把功夫较多得花在不太熟悉的数据工具和报表工具上。
希望能对你有所帮助。来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-19
当到一定程度之后你会发现,最好的还是原生的JDBC+数据库连接池框架,其他都是浮云。
第2个回答  2012-12-19
一样的,但是个人感觉还是ibatis灵活...
相似回答