首页 > 编程知识 正文

mybatis使用详解,Mybatis

时间:2023-05-05 14:35:34 阅读:173690 作者:3798

【我的batis】个人资料【我的batis】核心成员分析【我的batis】我的batis工作流程【我的batis】我的batis中的一级、二级缓存目录

一、官方网站:

二. MyBatis与Hibernate的对比

1同一点

2不同点

3、总结

三. MyBatis与Mybatis-Plus的对比

一、官方网站: my batis:https://my batis.org/my batis-3/zh/index.html

hibernate: http://hibernate.org/

my batis-plus:https://Bao midou.com /

二、MyBatis与Hibernate的比较1相同点Hibernate与MyBatis均通过SessionFactoryBuider从XML配置文件生成SessionFactory,再从SessionFactory生成Session

其中SessionFactoryBuider、SessionFactory、Session的生命周期都是相同的。 Hibernate和MyBatis都支持JDBC和JTA事务。

2不同点(1) hibernate是全自动的,mybatis是半自动的

hibernate具有完整的JavaBean对象和数据库映射结构,并通过对象关系模型与数据库进行交互并自动生成sql。 mybatis只有基本的字段映射,对象数据与对象的实际关系仍然需要通过手写sql来实现和管理。

)2) hibernate数据库的可移植性远大于mybatis

hibernate强大的映射结构和hql语言大大降低了对象与数据库(Oracle、Mysql等)的耦合性,但由于mybatis需要手写sql,因此与数据库的耦合性是程序员对sqql的依赖sql没有通用性,如果使用很多特定数据库特性的sql语句,可移植性也会下降很多,成本也会变高

)3) hibernate拥有完整的日志系统,但mybatis稍有欠缺

hibernate日志系统非常健全,广泛涉及sql记录、关系异常、优化警告、缓存提示、脏数据警告等。 mybatis除了基本的记录功能外,功能相当弱。

)4)与hibernate相比,mybatis需要关注更多细节

hibernate的构成比mybatis复杂得多,学习成本也比mybatis高。 但是,正因为mybatis易于使用,它比hibernate更关心更多的技术细节。 mybatis不需要考虑很多细节,与传统的jdbc开发模式的差异很小,所以很容易着手开发项目,但是如果忽略细节,由于项目的前期错误很多,开发相对稳定的软件比较慢,软件也比较容易hibernate则恰恰相反。 但是,如果熟练使用hibernate,实际上开发效率也比不上mybatis。

)5)在sql的直接优化中,mybatis比hibernate方便多了

mybatis的所有sql都是写在xml中的,因此优化sql比hibernate方便多了。 另一方面,许多hibernate sql是自动生成的,无法直接维护SQL; 虽然有hql,但是功能没有sql那么强大。 看报告等变态的需求,hql也会停业。 这意味着hql是有局限性的。 hibernate还支持本机sql,但与orm的开发模式不同,它不易于使用,因为需要切换思维。 总之,在编写sql的灵活性上hibernate比不上mybatis。

)6)在缓存机制中,hibernate优于mybatis

MyBatis的二级高速缓存配置针对特定的表和对象映射进行了详细的组织,因此可以为每个表定制不同的高速缓存机制。 另外,Mybatis可以在名称空间中共享相同的缓存配置和实例,通过Cache-ref来实现。

另一方面,Hibernate对查询对象有很好的管理机制,因此用户不需要在意SQL。 因此,如果在使用二级缓存时发生脏数据,则会报告错误并显示提示。

3、总结(1)两者共同点

Hibernate和Mybatis二级缓存除了采用系统缺省缓存机制外,还通过实现自己的缓存和为其他第三方缓存方案创建适配器来完全实现缓存行为

)2)两者的不同点

Hibernate的辅助缓存配置由SessionFactory生成的配置文件详细组成,然后通过特定的表-对象映射配置缓存。 MyBatis在使用二级缓存时需要特别注意。 如果不能完全确定数据更新操作的范围,请避免盲目使用Cache。 否则,污染数据的出现会给系统的正常运行带来很大的风险。

)3)举形象比喻

MyBatis :机器的道具很好用,拿来了就用,工作自己做,但是道具是活的,怎么用由我决定。 (紧凑、方便、高效、简单、直接、半自动)

Hibernate :虽然是智能机器人,但开发它(学习、熟练程度)的成本很高,工作都可以摆脱他,但仅限于能做到。 (强大、方便、高效、复杂、绕圈子、全自动)

三、MyBatis和Mybatis-Plus与Mybatis-Plus相比,在网上找了很久,也没发现他有什么缺点。 我反正很好用,但是大公司几乎不会想的,大概是因为他不是apache的顶级项目吧。

【mybatis】个人资料【mybatis】核心成员分析【mybatis】mybatis工作流程【mybatis】mybatis中的1级、2级缓存

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。