自学内容网 自学内容网

MyBatis 入门学习总结

一、 MyBatis概述

MyBatis 是一个优秀的 持久层框架,它封装了 JDBC,简化了与数据库的交互。通过 MyBatis,开发者可以使用简单的 XML 或注解来配置和操作数据库,而无需直接编写繁琐的 JDBC 代码。

MyBatis 的核心特性

  1. SQL 显式化:与 Hibernate 等 ORM 框架相比,MyBatis 让开发者直接编写 SQL,更加灵活。
  2. 动态 SQL:支持动态构建 SQL 查询,提高复杂查询的开发效率。
  3. 简单易用:配置简单,学习成本低。
  4. 自动映射:将数据库表和 Java 对象自动映射。

二、入门程序学习

步骤1:创建 Spring Boot 工程并引入 MyBatis 相关依赖

  • 在创建 Spring Boot 项目时,选择 MyBatis FrameworkMySQL Driver 依赖。

或者:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.13</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
</dependency>

准备数据库表和实体类

创建一个 user 表,包含以下字段:

CREATE TABLE user (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50),
    password VARCHAR(50),
    name VARCHAR(50),
    age INT
);

-- 插入测试数据
INSERT INTO user (username, password, name, age) VALUES
('xxx', 'xxx', 'xxx', xxx),
....................................

创建实体类 User;

配置 MyBatis 数据源
application.properties 中配置数据库连接信息:

spring.datasource.url=jdbc:mysql://localhost:3306/web01
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root@1234

步骤 2:编写 MyBatis 程序

创建 Mapper 接口

  • 使用 @Mapper 注解声明接口。
  • 编写 SQL 查询语句,使用 @Select 注解直接定义查询语句。
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;

/*声明当前接口是mybatis的持久层接口;  
框架运行时, 会自动的为该接口生成一个实现类对象(代理对象), 
并且将该是实现类对象交给IOC容器管理 - bean*/

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM user")
    List<User> findAll();
}

编写测试逻辑

  • 在 Spring Boot 的测试或主程序中注入 UserMapper 接口,并调用其方法查询用户数据。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import java.util.List;

@Component
public class MyBatisDemo implements CommandLineRunner {
    @Autowired
    private UserMapper userMapper;

    @Override
    public void run(String... args) throws Exception {
        List<User> users = userMapper.findAll();
        for (User user : users) {
            System.out.println("ID: " + user.getId());
            System.out.println("用户名: " + user.getUsername());
            System.out.println("姓名: " + user.getName());
            System.out.println("年龄: " + user.getAge());
        }
    }
}

MyBatis XML 映射配置教程

  在 MyBatis 中,除了通过注解配置 SQL 语句,还可以使用 XML 文件来配置 SQL 语句。XML 配置方式更加适合复杂 SQL 逻辑,并能与代码分离,便于维护。

XML 映射配置的规则

  1. XML 文件的名称与 Mapper 接口名称一致,并且放在同一包路径下(同包同名)。
  2. namespace 属性与 Mapper 接口的全限定名一致,用于标识对应的 Mapper。
  3. XML 文件中 SQL 语句的 id 必须与 Mapper 接口中的方法名一致,返回类型也要保持一致。

步骤:

(1) 创建 Mapper 接口

com.example.mapper 包下创建 UserMapper 接口:

package com.itheima.mapper;

import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;

@Mapper 
/*声明当前接口是mybatis的持久层接口;  框架运行时, 
会自动的为该接口生成一个实现类对象(代理对象), 
并且将该是实现类对象交给IOC容器管理 - bean*/
public interface UserMapper {
    public List<User> findAll();
}
(2) 创建 XML 映射文件

resources/com/example/mapper 下创建 UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
   <mapper namespace="com.itheima.mapper.UserMapper">
    <!--配置SQL: 查询全部用户
        resultType : 查询返回的单条记录所需要封装的类型
    -->
    <select id="findAll" resultType="com.itheima.pojo.User">
        select id, username, password, name, age from user
    </select>

</mapper>
  • namespace:与 UserMapper 的全限定名一致。
  • id:SQL 语句的标识符,需与接口中的方法名一致。
  • resultType:指定查询结果映射到的实体类。

(3) 配置 MyBatis 核心文件

application.properties 文件中配置 MyBatis 数据源:

spring.datasource.url=jdbc:mysql://localhost:3306/web01
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=1234

//打印mybatis运行日志到控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 

三、总结

MyBatis 是一款优秀的持久层框架,用于简化 Java 应用程序与数据库之间的交互。它通过 XML 文件或注解的方式,直接操作 SQL,具备以下特点:

  1. 灵活性:开发者直接控制 SQL,适合复杂查询。
  2. 高效性:轻量级框架,性能开销小。
  3. 简单易用:配置简单,入门成本低

原文地址:https://blog.csdn.net/zzb1580/article/details/143886247

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!