现在要你做一个系统,你选择mybits与hibernate的原因是什么呢?在什么样的情况下你会选择mybits,在什么样的情况下又选择hibernate?
不要说我没有说是什么样的一个系统,我就是在问你选择其中一个的理由是什么,是什么系统并不重要。
------解决方案--------------------
太过复杂的sql连接,用hibernate配置太过麻烦,再就是性能问题了。
经常涉及三四张表或更多的表查询时,自己写sql感觉比使用hibernate的配置文件要方便些。
自己写sql,也方便测试,可以直接拿sql出来到客户端执行。用hibernate的话,就要跟着配置文件一点点的找了。
移植方面,是hibernate的优势,mybatis没有任何优势了。
之前完成的一个项目,开发时用的是oracle数据库,现场是DB2,然后开发完成后就切数据库,用的是mybatis
然后 就找DB2的专家,一个一个的翻译sql,关键一些oracle的语法DB2是没有的,不支持的
然后就写一大堆的语句,为的就是完成一个简单的oracle的语法功能
而且 翻译过程中,一些sql翻译错误,也都是移植的风险点
hibernate的话,直接通过方言就搞定了数据库间的差异了。
------解决方案--------------------
mybatis的sql语句是需要单独自己去写的,hibernate的则是封装好的。所有mybatis的灵活性一级执行效率要比hibernate高一些。但是如果你的系统需要数据库移植的话,mybatis就比较麻烦,因为它的sql语句不同的数据库需要重新修改。
------解决方案--------------------
表关系复杂无非是多表之间的连接,如果表中的数据量不大,性能要求不过分,hibernate对程序猿来说更爽些,不过在某些大量数据上可以结合servlet让hibernate提高性能;
我有个同学现在做飞信项目,他们对性能要求高点,用的是servlet和mybatis;