Code Bye

一个系统里面怎样选择mybits和hibernate?

现在要你做一个系统,你选择mybits与hibernate的原因是什么呢?在什么样的情况下你会选择mybits,在什么样的情况下又选择hibernate
不要说我没有说是什么样的一个系统,我就是在问你选择其中一个的理由是什么,是什么系统并不重要。

都不重要,一般新的无所谓
引用 1 楼 huxiweng 的回复:

都不重要,一般新的无所谓

你的意思是mybits和hibernate好用么,不管在哪一方面?

如果系统中的映射都相对简单,建议使用hibernate
如果系统的sql比较负责,或者复杂sql居多,建议使用mybatis

看团队哪个技术更熟练些,使用哪个技术,这样问题方便解决。

hibernate优在面向对象,跨平台,好移植
mybatis 可以自己控制sql,mybatis帮助做结果集映射

都非常厉害了,那就无所谓了。

感觉说了一堆废话

引用 3 楼 magi1201 的回复:

如果系统中的映射都相对简单,建议使用hibernate
如果系统的sql比较负责,或者复杂sql居多,建议使用mybatis

看团队哪个技术更熟练些,使用哪个技术,这样问题方便解决。

hibernate优在面向对象,跨平台,好移植
mybatis 可以自己控制sql,mybatis帮助做结果集映射

都非常厉害了,那就无所谓了。

感觉说了一堆废话

没有啦,很有帮助的,为什么复杂SQL多反而要用mybits呢,是因为hibernate复杂SQL执行效率比较慢么?另外,在移植方面,mybits比起hibernate来说,是不是不方便的地方就是不部分sql需要重新写而hibernate只是切换配置文件而已。请大神赐教,别嫌我烦哈,先谢过啦!虽然我分比较少。。。。


10分
引用 4 楼 wxhwdmxl 的回复:

没有啦,很有帮助的,为什么复杂SQL多反而要用mybits呢,是因为hibernate复杂SQL执行效率比较慢么?另外,在移植方面,mybits比起hibernate来说,是不是不方便的地方就是不部分sql需要重新写而hibernate只是切换配置文件而已。请大神赐教,别嫌我烦哈,先谢过啦!虽然我分比较少。。。。

太过复杂的sql连接,用hibernate配置太过麻烦,再就是性能问题了。
经常涉及三四张表或更多的表查询时,自己写sql感觉比使用hibernate的配置文件要方便些。
自己写sql,也方便测试,可以直接拿sql出来到客户端执行。用hibernate的话,就要跟着配置文件一点点的找了。
移植方面,是hibernate的优势,mybatis没有任何优势了。
之前完成的一个项目,开发时用的是oracle数据库,现场是DB2,然后开发完成后就切数据库,用的是mybatis
然后 就找DB2的专家,一个一个的翻译sql,关键一些oracle的语法DB2是没有的,不支持的
然后就写一大堆的语句,为的就是完成一个简单的oracle的语法功能
而且 翻译过程中,一些sql翻译错误,也都是移植的风险点
hibernate的话,直接通过方言就搞定了数据库间的差异了。

引用 5 楼 magi1201 的回复:
Quote: 引用 4 楼 wxhwdmxl 的回复:

没有啦,很有帮助的,为什么复杂SQL多反而要用mybits呢,是因为hibernate复杂SQL执行效率比较慢么?另外,在移植方面,mybits比起hibernate来说,是不是不方便的地方就是不部分sql需要重新写而hibernate只是切换配置文件而已。请大神赐教,别嫌我烦哈,先谢过啦!虽然我分比较少。。。。

太过复杂的sql连接,用hibernate配置太过麻烦,再就是性能问题了。
经常涉及三四张表或更多的表查询时,自己写sql感觉比使用hibernate的配置文件要方便些。
自己写sql,也方便测试,可以直接拿sql出来到客户端执行。用hibernate的话,就要跟着配置文件一点点的找了。
移植方面,是hibernate的优势,mybatis没有任何优势了。
之前完成的一个项目,开发时用的是oracle数据库,现场是DB2,然后开发完成后就切数据库,用的是mybatis
然后 就找DB2的专家,一个一个的翻译sql,关键一些oracle的语法DB2是没有的,不支持的
然后就写一大堆的语句,为的就是完成一个简单的oracle的语法功能
而且 翻译过程中,一些sql翻译错误,也都是移植的风险点
hibernate的话,直接通过方言就搞定了数据库间的差异了。

恩,非常感谢你的分享,我会好好斟酌的,看起来用hibernate或许会更好一些。这段时间也是刚刚用mybatis把一个hibernate项目给替换了,感觉这mybatis还挺好用,没有牵扯到移植方面的问题或是一般移植也就是在本机用mysql,在服务器上用oracle,这两个数据库之间移植起来还是比较好弄的,不过为了长久的考虑,很多方面都还是要照顾到的,感谢你的回答!

我说下hibernate吧,如果数据量大,对程序性能要求较高,就不要用hibernate了!
ORM相对消耗资源很大的!
引用 7 楼 u012576250 的回复:

我说下hibernate吧,如果数据量大,对程序性能要求较高,就不要用hibernate了!
ORM相对消耗资源很大的!

对性能方面没有特别的要求,数据级别也不是很大,可能数据表之间的关系会比较复杂一点


5分
mybatis的sql语句是需要单独自己去写的,hibernate的则是封装好的。所有mybatis的灵活性一级执行效率要比hibernate高一些。但是如果你的系统需要数据库移植的话,mybatis就比较麻烦,因为它的sql语句不同的数据库需要重新修改。

5分
引用 8 楼 wxhwdmxl 的回复:
Quote: 引用 7 楼 u012576250 的回复:

我说下hibernate吧,如果数据量大,对程序性能要求较高,就不要用hibernate了!
ORM相对消耗资源很大的!

对性能方面没有特别的要求,数据级别也不是很大,可能数据表之间的关系会比较复杂一点

表关系复杂无非是多表之间的连接,如果表中的数据量不大,性能要求不过分,hibernate对程序猿来说更爽些,不过在某些大量数据上可以结合servlet让hibernate提高性能;
我有个同学现在做飞信项目,他们对性能要求高点,用的是servlet和mybatis;

引用 9 楼 SevenTinct 的回复:

mybatis的sql语句是需要单独自己去写的,hibernate的则是封装好的。所有mybatis的灵活性一级执行效率要比hibernate高一些。但是如果你的系统需要数据库移植的话,mybatis就比较麻烦,因为它的sql语句不同的数据库需要重新修改。

恩,移植问题算是考虑在内的一方面,我想我已经知道该怎么做了


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明一个系统里面怎样选择mybits和hibernate?