MyBatis 入门

44 阅读3分钟

MyBatis 介绍

什么是 MyBatis?

  • MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发。

什么是持久层?

  • 持久化:将数据存储到磁盘或其他非易失性存储介质中,以便在系统重启或崩溃后能够恢复数据。通俗的说就是将数据保存到数据库。
  • 持久层:负责完成数据持久化的一层代码块。持久层的主要作用是将应用程序中的数据存储到数据库中,并提供数据访问和管理的功能。
  • Java EE 三层架构:表现层、业务层、持久层。

image.png

image.png

为什么使用 MyBatis?

  • MyBatis 免除了几乎所有的 JDBC 代码、以及设置参数和获取结果集的工作。
  • 使用 JDBC 的主要问题:操作繁琐,需要手动设置参数、手动封装结果集。

image.png

MyBatis 的优点

  • 灵活性高:MyBatis 提供了灵活的 SQL 映射配置方式,可以满足不同的业务需求和开发场景。开发人员可以通过 XML 或注解的方式来配置 SQL 映射,还可以自定义类型处理器、插件等。
  • 易于学习和使用:MyBatis 的 API 简单易用,学习曲线平缓,开发人员可以快速上手。同时,MyBatis 的文档和社区支持也非常丰富,可以帮助开发人员解决各种问题。
  • 性能优越:MyBatis 采用了基于 SQL 的查询方式,可以充分利用数据库的性能优势。同时,MyBatis 还提供了缓存机制和批量操作等优化方式,可以进一步提升性能。
  • 易于集成:MyBatis 可以与 Spring、Spring Boot 等框架无缝集成,可以方便地进行应用程序开发和管理。
  • 易于调试和优化:MyBatis 的 SQL 映射配置方式直观清晰,可以方便地进行调试和优化。同时,MyBatis 还提供了日志记录和性能分析等工具,可以帮助开发人员快速定位问题和优化性能。

ORM介绍

  • ORM,Object-Relational Mapping,对象关系映射,用于将对象模型和关系数据库之间进行映射。ORM 技术可以将数据库中的表、行、列等数据结构映射为对象、属性等面向对象的数据结构。

image.png

第一个 MyBatis 程序

  1. 创建数据表,并插入数据
  2. 引入 MyBatis jar 包依赖
  3. 创建并编辑核心配置文件 mybatis-config.xml
  4. 定义 POJO 类
  5. 创建并编辑 SQL 映射文件 xxxMapper.xml
  6. 加载核心配置文件,获取 SqlSessionFactory 对象
  7. 获取 SqlSession 对象
  8. 执行 SQL 语句
  9. 释放资源

参考 MyBatis 官网:mybatis.org/mybatis-3/z…

1. 引入 MyBatis 和 JDBC 的 jar 包依赖

image.png

2.创建并编辑核心配置文件 mybatis-config.xml

  • 文件格式参考官网
  • 数据库连接信息自行填写
  • sql 映射文件自行填写并与之后创建的映射文件保持一致

image.png

3. 定义 POJO 类

  • POJO,Plain Old Java Object,是一种简单的 Java 对象,它不依赖于任何特定的框架或技术,只使用 Java 标准库中的类和接口。POJO 类通常只包含私有属性、公共 getter 和 setter 方法以及一些简单的业务逻辑,不包含任何特定的业务逻辑或技术实现。

image.png

4. 创建并编辑 SQL 映射文件 xxxMapper.xml

image.png

  • namespace 命名空间,这里先定义为 AccountMapper,之后会详细讲解命名空间的作用。
  • 定义 SQL,类型为 select,定义 SQL id 为 selectAccount。
  • #{id} 表示入参。
  • resultType 表示返回数据的类型。

5. 加载核心配置文件,获取 SqlSessionFactory 对象

6. 获取 SqlSession 对象

7. 执行 SQL 语句

8. 释放资源

image.png

这种执行 SQL 的方式与 Java 根据全限定名调用 Java 对象的方法类似。