hibernate和mybatis的比较
来源:互联网 发布:手机跑分软件 编辑:程序博客网 时间:2024/06/03 15:15
1. 简介:
hibernate对jdbc进行了较为完整的封装,实现了JavaBean和数据库之间的映射,以及SQL的自动生成和执行
mybatis实现了JavaBean和SQL之间的映射,将SQL所需的参数以及返回的结果字段映射到指定的Bean,相对Hibernate O/R
Mapping来说,mybatis是一种sql Mapping的框架
2. 开发速度:
mybatis需要我们手动编写sql,可以按照需求指定查询的字段,提高程序的查询效率
hibernate也可以自己写SQL语句来指定查询的字段,但这样破坏了hibernate封装及简洁性
3. 数据库移植性
mybatis由于所有sql都是依赖数据库书写的,所以移植性比较差
hibernate与数据库具体的关联都在xml中,HQL对具体使用什么数据库并不是很关心
4. 缓存机制对比
相同点:Hibernate和Mybatis的二级缓存除了采用系统默认的缓存机制外,都可以通过实现你自己的缓存或为其他第三方缓存方案,创建适配器来完全覆盖缓存行为。
不同点:Hibernate的二级缓存配置在SessionFactory生成的配置文件中进行详细配置,然后再在具体的表-对象映射中配置是那种缓存。
MyBatis的二级缓存配置都是在每个具体的表-对象映射中进行详细配置,这样针对不同的表可以自定义不同的缓存机制。并且Mybatis可以在命名空间中共享相同的缓存配置和实例,通过Cache-ref来实现。
5. 两者对比总结
Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。如下图所示:
Hibernate优势:
Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。
Mybatis优势
MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
MyBatis容易掌握,而Hibernate门槛较高。
- hibernate和mybatis的比较
- Hibernate和 Mybatis 的比较
- MyBatis和Hibernate的比较
- Hibernate和MyBatis的比较
- hibernate和mybatis的比较
- MyBatis和Hibernate的比较
- Hibernate和Mybatis的比较
- hibernate和mybatis的比较
- MyBatis和Hibernate的比较
- Mybatis和Hibernate的比较
- hibernate和mybatis的比较
- Mybatis和hibernate比较
- hibernate和mybatis比较
- hibernate和mybatis比较
- hibernate和mybatis比较
- mybatis和hibernate比较
- MyBatis和Hibernate比较
- JDBC和hibernate,mybatis的比较
- myeclipse通过数据表生成jpa或hibernate实体
- C++用复合梯形法求积分
- PAT (Basic Level) Practise (中文)1021. 个位数统计 (15)
- MIME类型大全
- 构造函数
- hibernate和mybatis的比较
- Intel x86_64 Architecture Background(1)
- 走近meta
- 在DLL编程中,导出函数为什么需要extern "C"
- linux 常用命令adb
- C语言strtok函数
- Codeforces 652C Foe Pairs 【dp】
- 九种求和方法
- 【项目】:图像识别中的排序算法