mybatis与hibernate的比较

本文对比了MyBatis和Hibernate两大ORM框架的相似之处与区别,并分别列举了它们的优势。两者都支持JDBC和JTA事务处理,但在实现细节上有所差异。MyBatis更适合需要精细SQL优化的场景,而Hibernate则在对象持久化方面表现更佳。


MyBatishibernate的比较:

共同点:

1一个共同的思想ORM

1. 从配置文件(通常是XML配置文件中)得到sessionfactory.
2.
sessionfactory  产生 session
3.
session 中完成对数据的增删改查和事务提交等.
4.
在用完之后关闭session
5.
java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件

 

2 HibernateMyBatis都可以是通过 SessionFactoryBuiderXML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuiderSessionFactorySession的生命周期都是差不多的。

 

3 HibernateMyBatis都支持JDBCJTA事务处理。

 

区别:

Mybatis自动提交事务。Hibernate是手动提交事务。

Mybatis导入一个主jar就基本满足,只有600kb大小,hibernate导入的jar更多。

Mybatis配好了数据库方言,不能任意更改。Hibernate更换数据库比较方便,修改下配置信息就可以(前提是使用的HQL语言操作数据)。

Mybatis面向接口编程。hibernate面向对象编程。

Mybatis中的事务概念模糊,例如详细的事务的开启、关闭、回滚等,至多是session.save() --- 提交,比较明显。

 

 

Mybatis优势:

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

  2. MyBatis容易掌握,而Hibernate门槛较高。

 

 

Hibernate优势:

  1. HibernateDAO层(持久层)开发比MyBatis简单Mybatis需要维护SQL和结果映射。

2.  Hibernate对对象的维护和缓存要比MyBatis,对增删改查的对象的维护要方便。

3.  Hibernate数据库移植性很好MyBatis的数据库移植性不好,不同的数据库需要写不同SQL

4.  Hibernate有更好的缓存机制,可以使用二级缓存、查询缓存。MyBatis本身提供的缓存机制不佳。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值