【Spring Boot 整合 MyBatis 详细教程】

文章目录

  • [Spring Boot 整合 MyBatis 详细教程](#Spring Boot 整合 MyBatis 详细教程)

Spring Boot 整合 MyBatis 详细教程

简介

Spring Boot 与 MyBatis 的整合可以让你轻松地构建数据访问层,通过简化配置和自动配置功能,使得开发者可以更加专注于业务逻辑的实现。本文将详细介绍如何在 Spring Boot 项目中整合 MyBatis。

环境准备

  • JDK 1.8 或更高版本
  • Spring Boot 2.x
  • MyBatis 2.x
  • MySQL 数据库

项目搭建

  1. 新建项目 :在 IntelliJ IDEA 中,选择 File -> New -> Project,选择 Spring Initializr,配置 JDK 环境为 1.8。
  2. 添加依赖 :选择 Spring WebMyBatis FrameworkMySQL Driver 作为项目依赖。

项目结构

配置项目

1. pom.xml 配置

pom.xml 文件中添加以下依赖:
修改springboot的版本为2.5.9以及添加mysql,mybatis相关依赖

xml 复制代码
		<dependency>
    		<groupId>org.projectlombok</groupId>
    		<artifactId>lombok</artifactId>
		</dependency>
		<!--mybatis-->
		<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
		<!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
		<!--德鲁伊连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

        <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

2. 数据源和 MyBatis 配置

application.propertiesapplication.yml 文件中配置数据源和 MyBatis:

java 复制代码
#DB Configuration:
spring:
  #连接池配置
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/advdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
      username: root
      password: 123456
      initial-size: 1                     #连接池初始大小
      max-active: 20                      #连接池中最大的活跃连接数
      min-idle: 1                         #连接池中最小的活跃连接数
      max-wait: 60000                     #配置获取连接等待超时的时间
      pool-prepared-statements: true    #打开PSCache,并且指定每个连接上PSCache的大小
      max-pool-prepared-statement-per-connection-size: 20
      validation-query: SELECT 1 FROM DUAL
      validation-query-timeout: 30000
      test-on-borrow: false             #是否在获得连接后检测其可用性
      test-on-return: false             #是否在连接放回连接池后检测其可用性
      test-while-idle: true             #是否在连接空闲一段时间后检测其可用性

#spring集成Mybatis环境
#pojo别名扫描包
#加载Mybatis映射文件
mybatis:
  mapper-locations: classpath:mapper/*Mapper*.xml
  type-aliases-package: com.fs.pojo
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

server:
  port: 8080

3. 启动类配置

在启动类上添加 @MapperScan 注解,指定 mapper 接口的位置:

java 复制代码
@SpringBootApplication
@MapperScan("com.fs.mapper")
public class SpringBootSsmApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootSsmApplication.class, args);
    }

}

4. Mapper 接口XML 映射文件

创建 Mapper 接口和相应的 XML 映射文件。例如,创建 UserMapper 接口和 UserMapper.xml

java 复制代码
public interface UserMapper {
    List<User> selectAll();
}
xml 复制代码
<mapper namespace="com.fs.mapper.UserMapper">
    <select id="selectAll" resultType="com.example.entity.User">
        SELECT * FROM user
    </select>
</mapper>

测试

编写测试代码来验证 MyBatis 整合是否成功:

java 复制代码
@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserMapper userMapper;

    @GetMapping
    public List<User> findAll() {
        return userMapper.selectAll();
    }
}

启动应用并访问 http://localhost:8080/user,如果能够看到数据库中的用户列表,说明整合成功。

总结

通过以上步骤,你可以在 Spring Boot 项目中成功整合 MyBatis,实现对数据库的访问和操作。Spring Boot 的自动配置和 MyBatis 的灵活性使得开发更加高效和简单。

相关推荐
bing_1582 小时前
简单工厂模式 (Simple Factory Pattern) 在Spring Boot 中的应用
spring boot·后端·简单工厂模式
天上掉下来个程小白2 小时前
案例-14.文件上传-简介
数据库·spring boot·后端·mybatis·状态模式
Asthenia04123 小时前
基于Jackson注解的JSON工具封装与Redis集成实战
后端
编程星空3 小时前
css主题色修改后会多出一个css吗?css怎么定义变量?
开发语言·后端·rust
程序员侠客行4 小时前
Spring事务原理 二
java·后端·spring
dmy4 小时前
docker 快速构建开发环境
后端·docker·容器
sjsjsbbsbsn4 小时前
Spring Boot定时任务原理
java·spring boot·后端
计算机毕设指导65 小时前
基于Springboot学生宿舍水电信息管理系统【附源码】
java·spring boot·后端·mysql·spring·tomcat·maven
计算机-秋大田5 小时前
基于Spring Boot的兴顺物流管理系统设计与实现(LW+源码+讲解)
java·vue.js·spring boot·后端·spring·课程设计
小蒜学长6 小时前
医疗报销系统的设计与实现(代码+数据库+LW)
数据库·spring boot·学习·oracle·课程设计