一、什么是 MyBatis?

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

官方网站资源:

二、为什么要使用 MyBatis?(解决 JDBC 的问题)

2.1 JDBC 的缺点:

  • 数据库连接硬编码 - 每次都需要手动创建连接

  • SQL 语句硬编码 - SQL 写在 Java 代码中,不易维护

  • 参数手动设置 - 需要手动设置 PreparedStatement 参数

  • 结果集手动封装 - 需要遍历 ResultSet 手动封装对象

  • 资源手动关闭 - 需要手动关闭 Connection、Statement、ResultSet

2.2 MyBatis 的解决方案:

  • 配置文件管理 - 将数据库配置提取到 XML 文件中

  • SQL 与代码分离 - SQL 写在 XML 映射文件中

  • 参数自动映射 - 自动将 Java 对象属性映射到 SQL 参数

  • 结果集自动封装 - 自动将查询结果封装为 Java 对象

  • 资源自动管理 - 自动管理数据库连接的开启和关闭

三、核心概念解析

3.1 持久层

持久层是软件架构中的一个概念,主要负责将数据保存到数据库或从数据库中读取数据。MyBatis 就是一个持久层框架,它封装了数据访问的细节,让开发者可以更专注于业务逻辑的实现。

3.2 执行流程(简单理解)

text

配置文件加载 → SqlSessionFactory 创建 → SqlSession 获取 → 执行 SQL → 返回结果

四、MyBatis 快速入门

4.1 如何获取 MyBatis

MyBatis 提供了三种主要获取途径:

途径一:Maven 依赖(推荐)
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.10</version> 
</dependency>
途径二:Gradle 依赖
implementation 'org.mybatis:mybatis:3.5.10'
途径三:直接下载 JAR 包

从官网下载地址:https://github.com/mybatis/mybatis-3/releases

4.2 快速入门步骤

第一步:创建核心配置文件(mybatis-config.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis_test"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <!-- 映射文件配置 -->
  </mappers>
</configuration>

第二步:创建实体类

public class User {
    private Integer id;
    private String name;
    private Integer age;
    
    // 构造方法、getter、setter 省略
}

第三步:创建映射文件(UserMapper.xml)

第四步:Java 代码中使用

// 1. 读取配置文件
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);

// 2. 创建 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = 
    new SqlSessionFactoryBuilder().build(inputStream);

// 3. 获取 SqlSession
try (SqlSession session = sqlSessionFactory.openSession()) {
    // 4. 执行 SQL
    User user = session.selectOne("com.example.mapper.UserMapper.selectUser", 1);
    System.out.println(user);
}

五、学习建议

对于初学者,建议按照以下顺序学习:

  1. 先掌握基本配置和简单 CRUD 操作

  2. 理解参数传递和结果映射

  3. 学习动态 SQL 的使用

  4. 掌握关联查询和复杂映射

  5. 最后学习缓存、插件等高级特性

通过 MyBatis,我们可以将原来繁琐的 JDBC 操作简化为配置文件和简单的接口调用,大大提高了开发效率。后续将深入讲解映射文件配置、动态 SQL、结果集映射等更详细的内容。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐