hibernate和mybatisplus区别_hibernate sql

hibernate和mybatisplus区别_hibernate sqlHibernate与Mybatis对比

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Hibernate与Mybatis对比

Hibernate :Hibernate 是当前最流行的ORM框架,对数据库结构提供了较为完整 的封装。
Mybatis:Mybatis同样也是非常流行的ORM框架,主要着力点在于POJO 与SQL 之间的映射关系。

其次具体从几个方面说一下两者的区别:
1.两者最大的区别
针对简单逻辑,Hibernate和MyBatis都有相应的代码生成工具,可以生成简单基 本的DAO层方法。
针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。而Hibernate有 良好的映射机制,开发者无需关心SQL生成与结果映射,可更专注于业务流程。
2.开发难度对比
Hibernate的开发难度要大于Mybatis。主要由于Hibernate比较复杂、庞大,学习 周期较长。
而Mybatis则相对简单一些,并且Mybatis主要依赖于sql的书写,让开发者感觉 更熟悉。
3.sql书写比较
Mybatis的SQL是手动编写的,所以可以按需求指定查询的字段。不过没有自己的 日志统计,所以要借助log4j来记录日志。
Hibernate也可以自己写SQL来指定需要查询的字段,但这样就破坏了Hibernate开 发的简洁性。不过Hibernate具有自己的日志统计。
4.数据库扩展性比较
Mybatis由于所有SQL都是依赖数据库书写的,所以扩展性,迁移性比较差。
Hibernate与数据库具体的关联都在XML中,所以HQL对具体是用什么数据库并不 是很关心。
5.缓存机制比较
相同点:Hibernate和Mybatis的二级缓存除了采用系统默认的缓存机制外,都可 以通过实现自己的缓存或为其他第三方缓存方案,创建适配器来覆盖缓存行为。
不同点:Hibernate的二级缓存配置在SessionFactory生成的配置文件中进行详细配 置,然后再在具体的表-对象映射中配置是那种缓存。
MyBatis的二级缓存配置都是在每个具体的表-对象映射中进行详细配置,这样针对 不同的表可以自定义不同的缓存机制。并且Mybatis可以在命名空间中共享相同的 缓存配置和实例,通过Cache-ref来实现。
两者比较:因为Hibernate对查询对象有着良好的管理机制,用户无需关心SQL。 所以在使用二级缓存时如果出现脏数据,系统会报出错误并提示。
而MyBatis在这一方面,使用二级缓存时需要特别小心。如果不能完全确定数据更 新操作的波及范围,避免Cache的盲目使用。否则,脏数据的出现会给系统的正常 运行带来很大的隐患。
6.总结
Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成 SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事 务和SQL语句。
而MyBatis的优势是MyBatis可以进行更为细致的SQL优化,可以减少查询字段, 并且容易掌握。
Hibernate的优势是DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。 数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。 有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195059.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • eclipse500错误原因解决方法_eclipse运行无法显示网页

    eclipse500错误原因解决方法_eclipse运行无法显示网页eclipse内部浏览器报错:此错误(HTTP500内部服务器错误)意味着您正在访问的网站出现了服务器问题,此问题阻止了该网页的显示修改eclipse设置即可解决:window->preferences->general->webbrowser选择使用外部浏览器即可IE浏览器设置如下:https://blog.csdn.net/txwtech/article/details…

    2022年8月11日
    9
  • Android面试题大全(中高级)

    Android面试题大全(中高级)1.synchronized和lock的区别答:https://blog.csdn.net/u012403290/article/details/64910926?locationNum=11&fps=1还可以去了解什么是可重入锁,公平锁,可中断锁。2.okhttp源码分析答:https://blog.csdn.net/mwq384807683/article…

    2022年5月22日
    24
  • PhpStorm 头部注释、类注释和函数注释的设置

    PhpStorm 头部注释、类注释和函数注释的设置

    2022年2月9日
    48
  • 进销存软件开发视频教程(C#版,共70讲)

    进销存软件开发视频教程(C#版,共70讲)课程出处:学途无忧网课程观看地址:http://www.xuetuwuyou.com/course/28  本教程以进销存管理实务为基础,采用时下主流的开发工具(VisualStudio2008+SQLServer2005),使用流行的C#语言。涵盖软件开发的全部过程,包括需求分析、数据库设计、架构设计、程序编码、软件发布。讲解以深入浅出为主,同时循序渐进。对软件开发过

    2022年5月8日
    42
  • JSONObject与JSONArray的使用

    JSONObject与JSONArray的使用

    2021年11月15日
    40
  • 以太坊矿机转让_以太坊矿机价格

    以太坊矿机转让_以太坊矿机价格文/有料科普全文约3000字,阅读时间3分钟。随着数量的减少比特币越来越难挖,而以太坊相对而言比较好挖,但也要投入价值不菲的设备,本篇文章将为大家讲解如何组装矿机,以及配置矿机软件并加入一个矿池以开始开采以太坊。其实这个方法同样适用于开采比特币。组装矿机投资至少6张显卡(GPU)。显卡是矿机中最重要的部分,因为它们实际上在解决在blockchain的方程矿cryptocurrency的工作。大多数…

    2022年9月30日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号