ORM框架之Mybaties,Hibernate

一 Hibernate和Mybatis区别:
1 实现上的区别:
mybaties只有一个核心的jar包,和Spring整合需要mybatis-springjar包,使用缓存要用mybatis-ehcachejar包,而Hibernate需要一系列的jar包,这反映了mybatis的小巧简单,Hibernate比较强大复杂,mybatis包括映射各种类的xml文件和实体类的-对应的映射文件,而Hibernate包括hibernate.cfg.xml和实体类的配置文件hibernate.hbm.xml

2 着力点不同:
Hibernate属于全自动的框架,着力于Pojo类与数据库表的映射,完成映射可以自动生成和执行sql,而Mybatis属于半自动框架,着力于Pojo与sql的映射,自己编写sql.然后通过配置文件将所需的参数和返回的字段映射到pojo

3 可移植性及日志:
Hibernate的项目比mybatis移植性好,因为Hibernate的HQL语句与具体数据库无关,而mybatis编写的sql与数据库有关;
hibernate有自己的日志统计slf4j,但mybatis本身不带日志
4 缓存方面:
都可以使用第三方的缓存,hibernate有一级和二级缓存之分,一级缓存属于session级别缓存,需要对session的生命周期进行管理,二级缓存属于sessionFactory级别缓存。一级缓存session结束后就清空了,二级缓存会放在内存里,再次创建session会先查二级缓存,没有的话才会发出sql语句
mybatis一级缓存无效,二级缓存被所有sqlsession共享。

你可能感兴趣的:(ORM框架之Mybaties,Hibernate,ORM框架)