相同点:
(1)Hibernate与MyBatis都是通过SessionFactoryBuider由XML配置文件生成SessionFactory,由SessionFactory 生成Session,由Session来开启执行事务和SQL语句。
(2)Hibernate和MyBatis都支持JDBC和JTA(Java Transaction API,Java事务API(ApplicationProgramming Interface,应用程序编程接口))事务处理。
注:jdbc和jta的主要作用是增强数据访问能力。
(3)基于ORM(Object Relational Mapping, 对象关系映射)思想解决了entity和数据库的映射问题
不同点:
Hibernate
(1)标准的orm框架,程序员不需要编写SQL语句。
(2)提供了HQL语言。
(3)程序员不能自主的去进行SQL性能优化。
(4)有游离态、瞬时态、持久态的概念
(5)开发效率较高
(6)但是表多、关系复杂的时候操作比较困难
(7)Hibernate有更好、更完善的缓存机制
(8)学习门槛较高
MyBatis
(1)通过直接编写SQL语句,可以直接对SQL进行性能的优化;
(2)业务代码和sql代码的分离
(3)比较灵活
(4)自己写sql,工作量较大
(5)学习门槛低
mybatis:机械工具,使用方便,拿来就用,但工作还是要自己来作,不过工具是活的,怎么使由我决定。
hibernate:智能机器人,但研发它(学习、熟练度)的成本很高,工作都可以摆脱他了,但仅限于它能做的事。
参考:
转载请注明:汪明鑫的个人博客 » Hibernate VS Mybatis
说点什么
您将是第一位评论人!