mybaits与hibernate区别

mybatis:小巧、方便、高效、简单、直接、半自动

hibernate:强大、方便、高效、复杂、绕弯子、全自动

mybaits与hibernate区别

1. hibernate是全自动,而mybatis是半自动

hibernate完全可以通过JavaBean对象与数据库的映射结构来自动生成sql。

mybatis 需要手写sql

2. 数据库移植

hibernate的映射结构和hql语言,更换数据库(oracle,mysql)容易

而mybatis由于需要手写sql,数据库更换比较需要消耗成本

3. 日志系统

hibernate日志系统非常健全包括:sql记录、关系异常、优化警告、缓存提示、脏数据警告

mybatis则除了基本记录功能外,功能薄弱很多。

4. 细节问题

hibernate配置多,很多都封装好直接调用

mybatis开发模式上与传统jdbc区别很小,考虑细节需要比较多

5. sql直接优化上

由于mybatis的sql都是写在xml里,优化容易

而hibernate的sql很多都是自动生成的,无法直接维护sql;

mybatis:

1. 入门简单,即学即用,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。

2. 可以进行更为细致的SQL优化,可以减少查询字段。

3. 缺点查询要自己写的,工作量也比较大,可用代码生成工具

4. 二级缓存机制不佳。

hibernate:

1. 数据库无关性好,O/R映射能力强,封装强的代码,代码量少

2. 有更好的二级缓存机制,可以使用第三方缓存。

3. 缺点就是学习门槛不低,要精通门槛更高

举个形象的比喻:

mybatis:机械工具,使用方便,拿来就用,但工作还是要自己来作,不过工具是活的,怎么使由我决定。

hibernate:智能机器人,但研发它(学习、熟练度)的成本很高,工作都可以摆脱他了,但仅限于它能做的事。


mybaits与hibernate区别

相关推荐