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

相关推荐
苏三说技术4 小时前
为什么越来越多人用OpenWiki?
后端
IT_陈寒4 小时前
Java里用Stream.parallel()翻车实录,这性能还不如单线程
前端·人工智能·后端
Bs_MoneyMagnet4 小时前
基于springboot+vue的生态果园采摘预约系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·毕业设计·计算机毕业设计
码事漫谈5 小时前
FDE 的起源、形态与真实边界
后端
行百里er5 小时前
Spring Insight 里如何画出服务拓扑
spring boot·spring cloud·监控
ServBay5 小时前
Grok Bot 还是 OpenClaw?聊聊真正能替人打杂的 AI 智能体
后端·aigc·grok
掘金挖土5 小时前
前端手摸手跑路之 AI 应用开发(五)
前端·后端
弈栈录5 小时前
LangGraph 入门:用状态机设计可靠的 Agent 工作流
后端·程序员
干到60岁退休的码农6 小时前
15.创建获取用户接口与JWT认证器
java·spring boot·mybatis
SL_staff6 小时前
面向业务人员的IoT概念翻译实践:JVS-IOT低代码配置原理与开发者视角解析
java·spring boot·物联网