首页 > 其他分享 >1.Mybatis概述

1.Mybatis概述

时间:2024-06-10 10:10:38浏览次数:27  
标签:Java 框架 映射 MyBatis ORM 概述 SQL Mybatis

1. Mybatis历史

MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。


iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。 iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。

2. MyBatis特性

  1. MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架
  2. MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集
  3. MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old JavaObjects,普通的Java对象)映射成数据库中的记录
  4. MyBatis 是一个 半自动的ORM(Object Relation Mapping)框架

3. 和其它持久化层技术对比

  • JDBC

    • SQL 夹杂在Java代码中耦合度高,导致硬编码内伤
    • 维护不易且实际开发需求中 SQL 有变化,频繁修改的情况多见
    • 代码冗长,开发效率低
  • Hibernate 和 JPA

    • 操作简便,开发效率高
    • 程序中的长难复杂 SQL 需要绕过框架
    • 内部自动生产的 SQL,不容易做特殊优化
    • 基于全映射的全自动框架,大量字段的 POJO 进行部分映射时比较困难。
    • 反射操作太多,导致数据库性能下降
  • MyBatis

    • 轻量级,性能出色
    • SQL 和 Java 编码分开,功能边界清晰。Java代码专注业务、SQL语句专注数据
    • 开发效率稍逊于HIbernate,但是完全能够接受

4. 三层架构

img

  • 表现层(UI):直接跟前端打交互(一是接收前端ajax请求,二是返回json数据给前端)

  • 业务逻辑层(BLL):一是处理表现层转发过来的前端请求(也就是具体业务),二是将从持久层获取的数据返回到表现层。

  • 数据访问层(DAL):直接操作数据库完成CRUD,并将获得的数据返回到上一层(也就是业务逻辑层)。

  • Java持久层框架:

    • MyBatis
    • Hibernate(实现了JPA规范)
    • jOOQ
    • Guzz
    • Spring Data(实现了JPA规范)
    • ActiveJDBC
    • ......

5. ORM: 对象关系映射

  • O(Object):Java虚拟机中的Java对象
  • R(Relational):关系型数据库
  • M(Mapping):将Java虚拟机中的Java对象映射到数据库表中一行记录,或是将数据库表中一行记录映射成Java虚拟机中的一个Java对象。
  • ORM图示
    img
  • MyBatis属于半自动化ORM框架。
  • Hibernate属于全自动化的ORM框架。

标签:Java,框架,映射,MyBatis,ORM,概述,SQL,Mybatis
From: https://www.cnblogs.com/NorthPoet/p/18240426

相关文章

  • k8s概述
    目录一、什么是Kubernetes1、官网链接2、概述3、特点4、功能二、Kubernetes架构1、架构图2、核心组件2.1、控制平面组件(ControlPlaneComponents)2.1.1、kube-apiserver2.1.2、etcd2.1.3、kube-scheduler2.1.4、kube-controller-manager2.2、Node组件2.2.1、kubelet2.2.2、kube-pr......
  • MyBatisPlus总结二
    MybatisPlus总结一在这:MybatisPlus总结1/2-CSDN博客六、分页查询:6.1.介绍:        MybatisPlus内置了分页插件,所以我们只需要配置一个分页拦截器就可以了,由于不同的数据库的分页的方式不一样,例如mysql和oracle数据库的写法是完全不一样的,所以我们需要去指定一个数......
  • MyBatis-Plus 面试热点问题详解(上)
    引言MyBatis-Plus是基于MyBatis的增强工具,旨在简化MyBatis开发,提高开发效率,降低代码冗余。作为一名Java开发者,特别是在面试过程中,掌握MyBatis-Plus的相关知识是非常必要的。本文将详细介绍MyBatis-Plus在面试中的一些热点问题,帮助大家更好地准备面试。MyBatis-......
  • [Java] Mybatis向Mysql插入主副表JSON数据
    ......
  • spring和Mybatis的各种查询
    目录六、MyBatis的各种查询功能6.1、查询一个实体类的对象6.2、查询一个list集合6.3、查询单个数据6.4、查询一条数据为Map集合6.5、查询多条数据为Map集合七、特殊SQL的执行7.1、模糊查询7.2、批量删除7.3、动态设置表名7.4、添加功能获取自增的主键八、自定义映射resultMap一......
  • MyBatis代码生成器的实用
    MyBatis代码生成器可以帮助我们快速的构建一些固定的代码重要:代码生成器生成的代码不能被修改,否则在新增新的字段以后,再次运行代码生成器,修改后的内容可能会丢失在项目中引入代码生成器的主要步骤:新建生成器模块,引入相关插件<!--mybatisgenerator自动生成代码插件-->......
  • 使用Mybatis出现org.apache.ibatis.binding.BindingException: Invalid bound stateme
    一般的解决方式:1、检查xml文件名和mapper接口名字是否一致2、检查xml文件中的namespace和mapper接口的全类名是否一致3、检查xml文件中的方法名和mapper接口中的方法名是否一致4、检查target中是否存在xml文件,如果不存在有两种方式,第一种是在yml文件中配置,第二种是在pom.xm......
  • 第一章 - 第1节-计算机概述 - 课件
    第一章计算机基础知识第1节计算机概述一、发展史1.计算机发展的五个阶段划分代别年代逻辑(电子)元件应用范围第一代1946-1958真空电子管科学计算、军事研究第二代1959-1964晶体管数据处理、事物处理第三代1965-1970集成电路工业控制的各个领域第四代1971-至今大规模、超......
  • GH3600高温合金化学成分、物理性能概述
    GH3600高温合金概述GH3600高温合金是一种镍基高温合金,具有优异的高温强度和抗氧化性能。其主要成分为镍、铬、钼、钨等,广泛应用于航空航天、燃气轮机、石油化工等领域。在高温环境下,GH3600高温合金展示出卓越的耐久性和稳定性,成为高温应用中不可或缺的材料。GH3600高温合金化......
  • 基于SpringBoot+Mybatis+Redis的问答社交网站项目(免费提供全部源码)
    下载地址如下:基于SpringBoot+Mybatis+Redis的问答社交网站项目(免费提供全部源码)资源-CSDN文库项目介绍项目背景随着互联网的普及和社交媒体的快速发展,用户对于在线交流和信息分享的需求不断增加。问答社交网站作为一种新型的社交平台,为用户提供了一个交流知识、解决问题和......