Mybatis学习之简介(一)

一、MyBatis特性

  1. MyBatis 是一个 半自动的ORM(Object Relation Mapping)框架。(ORM,对象关系型映射,用于在面向对象编程语言和关系型数据库之间建立映射关系)。MyBatis 虽然自动化程度相对较低但是灵活性相对较高。
  2. Mybatis简化了与数据库的连接过程,因为其内部封装了JDBC的链接过程,所以无需手动建立和管理连接,这使得开发者能够专注于业务逻辑的实现。
  3. Mybatis通过将SQL语句从代码中完全分离出来,提高代码的可读性和维护性。

二、MyBatis的核心流程

Mybatis的核心流程包括:

  1. SQL映射
  2. 参数处理
  3. 执行SQL
  4. 结果映射

通过编写SQL映射文件,将POJO与SQL语句关联,并处理参数,执行SQL后映射结果到POJO,实现整个流程。

开发人员首先编写SQL映射文件,定义POJO与SQL之间的对应关系。随后,Mybatis框架负责参数处理,确保SQL语句的正确执行,并最终将结果映射为POJO对象供使用。

三、和其它持久化层技术对比

1、JDBC特点

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

2、Hibernate 和 JPA特点

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

2、MyBatis特点

  • 轻量级,性能出色
  • SQL 和 Java 编码分开,功能边界清晰。Java代码专注业务、SQL语句专注数据
  • 开发效率稍逊于HIbernate,但是完全能够接受
相关推荐
悠哉悠哉愿意18 小时前
【强化学习学习笔记】强化学习简介
笔记·学习·强化学习
ActionTech18 小时前
MySQL 用好 Optimizer Trace,深刻理解 SQL 优化过程!
sql·mysql·oracle
星火开发设计18 小时前
C++ 输入输出流:cin 与 cout 的基础用法
java·开发语言·c++·学习·算法·编程·知识
AI_567818 小时前
用Everything+Total Commander管理电脑文件
人工智能·学习
秦奈18 小时前
Unity复习学习随笔(11):二进制存储
学习
Jack___Xue18 小时前
LangGraph学习笔记(六)---LangGraph ReAct应用
笔记·学习·react.js
星期五不见面19 小时前
嵌入式学习!(一)C++学习-leetcode(21)-26/1/29
学习·算法·leetcode
呱呱巨基19 小时前
Linux 第一个系统程序 进度条
linux·c++·笔记·学习
多多*19 小时前
Mysql数据库相关 事务 MVCC与锁的爱恨情仇 锁的层次架构 InnoDB锁分析
java·数据库·windows·sql·oracle·面试·哈希算法
好奇龙猫19 小时前
【人工智能学习-AI入试相关题目练习-第十七次】
人工智能·学习