论坛首页 Java企业应用论坛

不选或许有千万种理由,但是选择hibernate只需要一个理由就足够了

浏览 39085 次
该帖已经被评为良好帖
作者 正文
   发表时间:2011-01-29  
ppgunjack 写道
adaikiss 写道
javazeke 写道
有多少项目大到要换数据库的,,,炒作炒作就好了嘛。。

如果你的项目是只卖给一个客户当然不需要, 但是如果你的产品是卖给不同用户的, 而你的用户又不愿意重新购买一个数据库......

大的项目别说换数据库,数据库版本都不会动,连着固定配置的主机和固定版本的OS一起打包
如果因为主机退市,带来的OS和主机升级会立项成立项目组专门进行移植和测试

现在系统自己实现了类似规则引擎的东西,问为啥不用jrule或者drools一类的成型的东西,曰,那时还没什么人用java
也找不到这些

企业级的产品,Linux这种背景尚且花了这么长时间,不要说其他的东西,如果用hibernate能降低很大成本的,说明原来成本本就不大

这要看情况了,如果你只是做个旧项目的outsource, 那自然不需要考虑跨数据库。
0 请登录后投票
   发表时间:2011-01-29  
跨数据库是种理想而已,经历的几个产品都做到了操作系统可移植,唯独数据库不能动
Hibernate要能算可靠的跨数据库方案,那jdbc都能算了,衡量可用性不是存取数据就完事了
企业用户关心的就是数据,至于oo,ssh,可移植客户关心吗?只有打单的乙方关心
开源的实现又不承担升级后对api的冲击和客户支持
企业应用还是商业db为王,商业中间件次之,然后是服务器厂商,看看几个最重要的开源现在都握在那些厂商手里,都是数据库厂商
与其强求dba学hibernate,不如要求程序员多学学数据库更合理。dba是管整个数据系统安危可靠,干嘛为了程序员的dao的选型又学java又学hibernate?
不要指望把扩缩依赖orm,应该更多考虑orm是否影响扩缩方案
0 请登录后投票
   发表时间:2011-01-30  
xyz20003 写道

外边随处可见的产品宣传“采用了hibernate,可以运行在目前所有的主流数据库上。”试想一下,如果自己开发一套基于数据库存储的产品,是选择自己实现兼容所有数据库呢?还是用hibernate?


我会选择只使用最标准的sql而不会用hibernate。
0 请登录后投票
   发表时间:2011-02-01  
elmar 写道
xyz20003 写道

外边随处可见的产品宣传“采用了hibernate,可以运行在目前所有的主流数据库上。”试想一下,如果自己开发一套基于数据库存储的产品,是选择自己实现兼容所有数据库呢?还是用hibernate?


我会选择只使用最标准的sql而不会用hibernate。

right. so you create severl util class to build sql query from pojo(or class, or whatever holds data) , it works well.

Then you find some databases have really nice feature you want to use, so you implements profiles for those databases.

After everything, you put your utils and db profiles into a jar and want to reuse it in your next project.

At this point, you realize this is just another F**KING ORM.
0 请登录后投票
   发表时间:2011-02-28  
yawei 写道
elmar 写道
xyz20003 写道

外边随处可见的产品宣传“采用了hibernate,可以运行在目前所有的主流数据库上。”试想一下,如果自己开发一套基于数据库存储的产品,是选择自己实现兼容所有数据库呢?还是用hibernate?


我会选择只使用最标准的sql而不会用hibernate。

right. so you create severl util class to build sql query from pojo(or class, or whatever holds data) , it works well.

Then you find some databases have really nice feature you want to use, so you implements profiles for those databases.

After everything, you put your utils and db profiles into a jar and want to reuse it in your next project.

At this point, you realize this is just another F**KING ORM.

没用过Habernate,只知道最基本的功能就是ORM。不过我个人喜欢用SQL语句来解决执行效率问题,而Habernate是解决开发效率问题,这两者还是有不小差异的。

另外,跨数据库的问题,在金融电信等领域,别说跨数据库,连数据库的版本号及其所在的LINUX主机环境都不敢动,一个小小的配置都可能导致灾难性的后果。所以说Habernate与跨数据库放在一起作为它的优点,这恐怕绝对不是原作者的本意,而是一些软件开发者宣传自己产品卖点的一种策略。实际应用中,大多数是些无关紧要的数据库才要考虑移植。

真正的跨数据库,我看还是多从标准SQL语句方面入手吧。
0 请登录后投票
   发表时间:2011-02-28  
yawei 写道
elmar 写道
xyz20003 写道

外边随处可见的产品宣传“采用了hibernate,可以运行在目前所有的主流数据库上。”试想一下,如果自己开发一套基于数据库存储的产品,是选择自己实现兼容所有数据库呢?还是用hibernate?


我会选择只使用最标准的sql而不会用hibernate。

right. so you create severl util class to build sql query from pojo(or class, or whatever holds data) , it works well.

Then you find some databases have really nice feature you want to use, so you implements profiles for those databases.

After everything, you put your utils and db profiles into a jar and want to reuse it in your next project.

At this point, you realize this is just another F**KING ORM.

使用框架,能快速解决某方面的问题,但同时也给别方面造成更大的困难。它可能在这方面灵活了,但在别一方面却显得笨拙。在这方面开发有效率了,但在另一方面却是负担。
0 请登录后投票
   发表时间:2011-03-18  
使用开源框架、从中学习人家的OO对象与数据库操作的思想,让程序员更多专注于业务 解决普遍性问题 才是初衷
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics