【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 的灵活性使得开发更加高效和简单。

相关推荐
摇滚侠21 小时前
Spring Boot 3零基础教程,IOC容器中组件的注册,笔记08
spring boot·笔记·后端
程序员小凯1 天前
Spring Boot测试框架详解
java·spring boot·后端
你的人类朋友1 天前
什么是断言?
前端·后端·安全
程序员小凯1 天前
Spring Boot缓存机制详解
spring boot·后端·缓存
i学长的猫1 天前
Ruby on Rails 从0 开始入门到进阶到高级 - 10分钟速通版
后端·ruby on rails·ruby
用户21411832636021 天前
别再为 Claude 付费!Codex + 免费模型 + cc-switch,多场景 AI 编程全搞定
后端
茯苓gao1 天前
Django网站开发记录(一)配置Mniconda,Python虚拟环境,配置Django
后端·python·django
Cherry Zack1 天前
Django视图进阶:快捷函数、装饰器与请求响应
后端·python·django
程序媛徐师姐1 天前
Java基于SpringBoot的茶叶商城系统,附源码+文档说明
java·spring boot·java springboot·茶叶商城系统·java茶叶商城系统·茶叶·java茶叶商城
爱读源码的大都督1 天前
为什么有了HTTP,还需要gPRC?
java·后端·架构