为什么有一些大型项目不使用Hibernate框架
有一些大型项目, 数据量也比较大, 数据库中的表都采用分表来处理, 但是还是使用JDBC来操作, 没有使用Hibernate框架, 这主要是考虑什么问题?
------解决方案--------------------
+1
------解决方案--------------------hiberate有一个缓存机制,每次从DB中存取数据,它都会在内存中保存一份,下一次同样的操作就取内存中的。不适合大数据量的应用,还是JDBC直接操作数据库好。
------解决方案--------------------
错了哦,hibernate的缓存会分为session级,sessionFactory级,和查询缓存,你说的是sessionFactory级,和查询缓存吧,但是必须都要配置的,不配置就没用。session级缓存==没有用,session用完就释放
------解决方案--------------------赞同~ 还有一个公共的问题就是这些框架都不能避免业务逻辑入侵的问题
------解决方案--------------------1 速度慢 不好优化 控制起来麻烦
2 不能使用sql的很多功能 存储过程 物化试图等
3 对象映射多了 对学习sql不利
------解决方案--------------------问题分析如下
1、hibernate的好处就是开发快。它是面向对象的编程。书写比较方便。 对编程人员编写SQL的能力要求比较低。容易上手。但是它最后执行还是要根据你配置的数据库方言编译成对应数据库的SQL。它有一个编译的过程所以它效率差些。但是hibernate只要修改了配置文件中的数据库方言。它可以适应流行的任何数据库。扩展性比较好。
2JDBC。使用JDBC是安装关系型数据库来解决问题的。 编写一个复杂的查询是比较困难的。 对编程人员的要求比较高。但是它如果使用了某些数据库的特殊函数。项目下来需要用别的数据库改动比较大。但是JDBC执行效率比较高。
------解决方案--------------------问题分析如下
1、hibernate的好处就是开发快。它是面向对象的编程。书写比较方便。 对编程人员编写SQL的能力要求比较低。容易上手。但是它最后执行还是要根据你配置的数据库方言编译成对应数据库的SQL。它有一个编译的过程所以它效率差些。但是hibernate只要修改了配置文件中的数据库方言。它可以适应流行的任何数据库。扩展性比较好。
2JDBC。使用JDBC是安装关系型数据库来解决问题的。 编写一个复杂的查询是比较困难的。 对编程人员的要求比较高。但是它如果使用了某些数据库的特殊函数。项目下来需要用别的数据库改动比较大。但是JDBC执行效率比较高。
3、hibernate的可读性比较高。JDBC可读性比较差
4、jdbc执行效率要比hibernate高。
------解决方案--------------------优点:
hibernate 主要的用途是跨数据库平台,对数据表映像数据对象,实现了真正意义上java对数据的面向对象编程,对于那些经常迁移数据库项目提供了便利而不用每一次都要改动java操作数据库代码
缺点:
操作数据速度变慢,如果你的项目不是经常跨数据库平台,建议还是用JDBC 执行效率会更高一些
------解决方案--------------------hibernate个人认为有2优势,自动封装,和自动关联.
在大型项目中,通常时间项目工期较长,人员流动较大,表结构很多.如果设计时明确的固定关联方式不是效率高的.相反有很多麻烦. 所以自动关联不是很重要.大型项目都是手动关联.
自动封装,手工封装下也不是很麻烦的.
个人意见,欢迎讨论