Spring boot 集成mybatis 教程

spring Boot 集成 MyBatis 教程

本文将基于 Spring Boot 3.x 和 MyBatis 3.5+,结合最新实践,分步骤详解如何高效集成 MyBatis,并解决常见配置问题。


一、环境准备与依赖配置
  1. 创建 Spring Boot 项目

    使用 Spring Initializr生成基础项目,选择以下依赖:

    • Spring Web

    • MySQL Driver

    • Lombok(可选)

  2. 添加核心依赖

    pom.xml中添加 MyBatis Spring Boot Starter:

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>3.0.5</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

二、配置数据源与 MyBatis
  1. 配置 application.yml

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC
        username: root
        password: 123456
        driver-class-name: com.mysql.cj.jdbc.Driver
    
    mybatis:
      mapper-locations: classpath:mapper/*.xml       # XML 映射文件路径
      type-aliases-package: com.example.entity       # 实体类包路径
      configuration:
        map-underscore-to-camel-case: true           # 开启驼峰命名转换
        cache-enabled: false                         # 关闭二级缓存(生产环境按需开启)
  2. 可选:Java 配置类

    若需复杂配置(如动态数据源),可创建配置类:

    @Configuration
    @MapperSc
<think>好的,用户想要了解Spring Boot集成MyBatis教程。我需要先回忆一下相关的步骤,确保信息的准确性。首先,应该从创建项目开始,使用Spring Initializr添加必要的依赖,比如MyBatis和数据库驱动。然后配置数据源,可能在application.properties里设置数据库连接信息。接下来是创建实体类和Mapper接口,这里需要提到@Mapper注解或者@MapperScan。可能需要XML映射文件或者注解方式,需要说明两者的区别和用法。还要提到MyBatis的配置,比如在配置类中定义SqlSessionFactoryBean。然后给一个简单的示例,比如查询操作,展示如何编写接口和方法。可能还要提一下事务管理和分页插件的集成,这些是常见的进阶需求。需要检查是否有遗漏的步骤,比如单元测试或者常见的坑,比如依赖版本问题,或者配置文件的位置是否正确。另外,用户可能对注解和XML配置哪个更感兴趣,或者是否需要连接池配置,比如HikariCP。还要确保语言通俗易懂,步骤清晰,适合初学者。最后,总结一下整个流程,确保用户能按步骤操作成功。</think>以下是Spring Boot集成MyBatis的完整教程(基于注解方式): --- ### 一、创建项目 1. 使用[Spring Initializr](https://start.spring.io/)创建项目 2. 添加依赖: - Spring Web - MyBatis Framework - 数据库驱动(MySQL/Oracle/PostgreSQL等) 示例`pom.xml`依赖: ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> ``` --- ### 二、配置数据源 在`application.properties`中配置: ```properties # 数据库配置 spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # MyBatis配置 mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.demo.entity ``` --- ### 三、创建实体类 ```java public class User { private Long id; private String name; private Integer age; // getters/setters省略 } ``` --- ### 四、创建Mapper接口 使用`@Mapper`注解: ```java @Mapper public interface UserMapper { @Select("SELECT * FROM user WHERE id = #{id}") User findById(Long id); @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})") @Options(useGeneratedKeys = true, keyProperty = "id") int insert(User user); } ``` --- ### 五、创建Service层 ```java @Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(Long id) { return userMapper.findById(id); } } ``` --- ### 六、配置MyBatis(可选) 如果需要XML配置: 1. 在`resources/mapper`目录下创建`UserMapper.xml` ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.UserMapper"> <select id="findAll" resultType="User"> SELECT * FROM user </select> </mapper> ``` --- ### 七、添加分页插件(可选) 1. 添加PageHelper依赖 ```xml <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency> ``` 2. 使用示例: ```java PageHelper.startPage(1, 10); // 第1页,每页10条 List<User> users = userMapper.findAll(); ``` --- ### 八、事务管理 在Service层添加`@Transactional`注解: ```java @Transactional public void updateUser(User user) { userMapper.update(user); } ``` --- ### 九、常见问题排查 1. 报错`Invalid bound statement`: - 检查`@MapperScan`配置 - 确认XML文件路径与配置匹配 - 清理并重新编译项目 2. 建议开启SQL日志: ```properties logging.level.com.example.mapper=debug ``` --- 通过以上步骤即可完成Spring BootMyBatis集成。实际开发中可根据需求选择注解方式或XML配置方式,推荐混合使用:简单SQL用注解,复杂SQL用XML。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值