在没有接触框架前,我们大都是使用原生的servlet也就是JDBC模式,但是在编写的时候极其麻烦

JDBC的缺点:需要手动的完成面向对象的Java语言、面向关系的数据库之间数据的转换,代码繁琐无技术含量,影响了开发效率。
如图所示,查询是需要手动的将结果集的列数据转换为Java对象的属性;而添加操作时需要手动将Java对象的属性转换为数据库表的列字段。

那么mybatis就很大程度的解决了这个问题

首先我们要清楚,mybatis是半自动的ORM框架

关于面向对象的Java语言、面向关系的数据库之间数据的转换必须要做,问题在于这个转换是否可以不由开发者来做。可以的。ORM框架就是专门来做这个问题的,相当于在面向对象语言和关系数据库之间搭建一个桥梁。

ORM,Object-Relationl Mapping,对象关系映射,它的作用是在关系型数据库和对象之间作一个映射,这样我们在具体的操作数据库的时候,只要像平时操作对象一样操作它就可以了,ORM框架会根据映射完成对数据库的操作,就不需要再去和复杂的SQL语句打交道了。

就比如说,我们之前想要操作数据中的数据进行更删改查,那么我们还需要手动把数据库的字段与实体类中对象进行一一匹配
那么半自动化的ORM框架mybatis会自动映射,我们就可以直接拿映射后的对象进行使用

什么是“持久化”

持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。

什么是 “持久层”

持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。之前使用JDBC访问数据库的DAO层,后面采用MyBatis访问数据库的mapper层,就是持久层。
Mybatis是一持久层(DAO)的款半自动的ORM(自定义SQL)映射框架

mybatis如何完成的映射

MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

精简解释:MyBatis是一个半自动ORM框架,其本质是对JDBC的封装。使用MyBatis重点需要程序员编写SQL命令,不需要写一行JDBC代码

Hibernate属于全自动的ORM,处理对象 关系映射之外,还有自动生成sql,但这种在我们的 实际编程中有着局限性,所以半自动的ORM要更受欢迎一些

总之,因为MyBatis具有相对轻量级,封装少、映射多样化、支持存储过程、可以进行SQL语句优化等特点,符合互联网高并发、大数据、高性能、高响应的要求,使它取代Hibernate成为了Java互联网中首选的持久框架。而对于对性能要求不高的比如内部管理系统、ERP等可以使用Hibernate

ORM的个人简单理解以及持久化和持久层的简单理解、Hibernate的简单理解,mybatis 的好处通俗易懂相关推荐

  1. 初步理解为什么要用持久层,持久层使用数据库高效的原因

    在写代码之前必须搞清楚持久层的意义是什么?持久层是必要的吗? 持久层对于持久是相对于瞬时来说的,持久层,可以理解成数据保存在数据库或者硬盘一类可以保存很长时间的设备里面,不像放在内存中那样断电就消失了 ...

  2. redis aof 备份和恢复_深入理解Redis持久化

    redis持久化的意义 持久化机制的介绍 RDB和AOF的基本介绍 RDB持久化机制的优点 RDB持久化机制的缺点 AOF持久化机制的优点 AOF持久化机制的缺点 RDB和AOF到底该如何选择 RDB ...

  3. 数据持久化框架为什么放弃Hibernate、JPA、Mybatis,最终选择JDBCTemplate!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 因为项目需要选择数据持久化框架,看了一下主要几个流行的和不流行的框 ...

  4. jooq实体 和mysql_几个数据持久化框架Hibernate、JPA、Mybatis、JOOQ的比较

    因为项目需要选择数据持久化框架,看了一下主要几个流行的和不流行的框架,对于复杂业务系统,最终的结论是,JOOQ是总体上最好的,可惜不是完全免费,最终选择JDBC Template. Hibernate ...

  5. 后端技术:数据持久化框架为什么放弃 Hibernate、JPA、Mybatis,最终选择 JDBCTemplate!...

    因为项目需要选择数据持久化框架,看了一下主要几个流行的和不流行的框架,对于复杂业务系统,最终的结论是,JOOQ是总体上最好的,可惜不是完全免费,最终选择JDBC Template. Hibernate ...

  6. 后端开发:数据持久化框架为什么放弃Hibernate、JPA、Mybatis,最终选择JDBCTemplate!...

    因为项目需要选择数据持久化框架,看了一下主要几个流行的和不流行的框架,对于复杂业务系统,最终的结论是,JOOQ是总体上最好的,可惜不是完全免费,最终选择JDBC Template. Hibernate ...

  7. 对持久层、持久性、持久化的讨论

    序: 关于持久层.持久性.持久化这几个名词,对我们平时应该是很常见的,其实看多了也大概知道了其中的意思,但是如果让我详细的介绍她们的精确定义,可能就不太容易了,下面我就详细介绍一下,这三个词的精确定义 ...

  8. ssh架构之hibernate(一)简单使用hibernate完成CRUD

    1.Hibernate简介   Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,h ...

  9. SSH三种框架及表示层、业务层和持久层的理解

    SSH:Struts(表示层)+Spring(业务层)+Hibernate(持久层) 在项目开发的过程中,有时把整个项目分为三层架构,其中包括: 1.表示层(UI). 2.业务逻辑层(BLL) 3.数 ...

  10. 斯坦福大学马腾宇:无法理解现有的深度学习算法?那就设计一个能理解的

    2020-01-22 05:41:34 作者 | 丛末 编辑 | Camel 本科毕业于清华姚班.博士毕业于普林斯顿大学,师从 Sanjeev Arora 教授,马腾宇作为 AI 学界一颗冉冉升起的新 ...

最新文章

  1. Python中的pandas模块学习
  2. 数据结构与算法 | 斐波那契查找
  3. 软件测试度量计算方法有哪些,软件测试度量(三)
  4. 在GZIDG弄服务器的这一整夜,快乐
  5. Pytorch 各种模块:降低学习率,
  6. python apply_async执行不了_python – Django Celery apply_async不起作用
  7. linux mc服务器 mod_我的世界:mc有哪些不为人知的“内幕”?Hypixel停服事件的真相...
  8. android Monkey test测试
  9. 如何使用css美化你的页面?
  10. AspNetPager常用属性及一些样式
  11. win7忘记密码不用工具进入
  12. idea启动vue项目
  13. 怎么去掉360导航页
  14. 小议车辆环境视觉基础前视感知
  15. 残差连接(skip connect)/(residual connections)
  16. JAVA图形界面:加法计算器
  17. python随机森林特征重要性原理_随机森林进行特征重要性度量的详细说明
  18. Redis入门【安装,常用类型,常用命令行命令】
  19. 快速开平方根倒数算法(Fast inverse square root)的一点探究
  20. Kali普通账户如何获取root管理员权限并切换中文?

热门文章

  1. 趋势 | 2020年云计算的10大市场方向
  2. 【图像加密】基于matlab GUI彩色图像加密解密(带面板)【含Matlab源码 1231期】
  3. 【带钢厚度预测】基于matlab GUI SVM带钢厚度预测【含Matlab源码 173期】
  4. ai人工智能对话了_对话式AI:智能虚拟助手和未来之路。
  5. 数据排序pandas
  6. 防火墙 虚拟服务器,防火墙应用指南(二)——虚拟服务器的搭建-20210526012702.pdf-原创力文档...
  7. 搬水果 - 九度教程第31题(哈夫曼树)
  8. c语言200行代码大作业含菜单,2018级C语言大作业 - 坦克动荡
  9. java没有类_为什么Java中没有类的第一类对象?
  10. php 标点符号,php怎么去除标点符号