当前位置: 首页 > article >正文

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. 简单易用:配置简单,入门成本低

http://www.kler.cn/a/403765.html

相关文章:

  • SpringBoot中设置超时30分钟自动删除元素的List和Map
  • 中间件--laravel进阶篇
  • 低速接口项目之串口Uart开发(二)——FIFO实现串口数据的收发回环测试
  • 【生成数据集EXCEL文件】使用生成对抗网络GAN生成数据集:输出生成数据集EXCEL
  • maven父子项目
  • Enterprise Architect 16 下载、安装与无限30天操作
  • 【Failed to resolve import “fsevents“ 】解决方案
  • Android Studio 构建报错 “Installed Build Tools revision 3x.0.0 is corrupted“
  • JSON 数组
  • Python小游戏28——水果忍者
  • Jetson AGX Orin v4l2 cuda 视频解码
  • 共享单车管理系统项目学习实战
  • PC上浏览器是如何查询DNS 缓存的?
  • 激光slam学习笔记5---ubuntu2004部署运行fastlivo踩坑记录
  • 联通大数据面试题及参考答案
  • Android 源码编译资料集
  • vue3中pinia状态管理库使用以及持久化配置方法总结
  • 基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
  • canva 画图 UI 设计
  • 69.x的平方根-力扣(LeetCode)
  • MySQL 8.4.3 Windows绿色安装与主从配置
  • canvas绘制圆角矩形
  • 修改一下达梦disql 提示符
  • OneToMany 和 ManyToOne
  • 使用数据库批量插入与循环单个插入:优势与区别
  • MyBatis的resultType和resultMap区别