SpringBoot 整合 MySQL + MyBatis 核心配置

完整标准配置

yaml 复制代码
# Spring 应用基础配置
spring:
  # 项目应用名
  application:
    name: springboot-practice

  # 数据库数据源配置(全部归属 spring.datasource 下)
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: 用户名
    password: 密码
    driver-class-name: com.mysql.cj.jdbc.Driver

# ⚠️ 重点:mybatis 是根级配置,不能缩进在 spring 下面!
mybatis:
  # mapper XML 文件扫描路径
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # 开启SQL控制台打印日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    # 开启下划线自动转驼峰映射
    map-underscore-to-camel-case: true

一、spring.datasource 数据源配置速记

配置项 含义作用 补充说明
url MySQL数据库连接地址 格式:jdbc:mysql://ip:端口/数据库名;生产建议追加时区、编码参数
username 数据库登录账号 本地一般root,线上不建议用root
password 数据库登录密码 对应MySQL账号密码
driver-class-name MySQL驱动类 MySQL8.x:com.mysql.cj.jdbc.Driver MySQL5.x:com.mysql.jdbc.Driver

拓展补充(生产必加参数):

实际开发建议 url 追加时区、乱码、SSL 参数,完整 url 示例:

jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false

  • serverTimezone=Asia/Shanghai:解决时区报错,SpringBoot 高版本 MySQL 驱动强制要求;
  • characterEncoding=utf8:统一字符集,防止中文乱码。

二、mybatis 根级配置速记(重点避坑)

核心提醒

mybatis 是顶层配置,不能写在 spring 缩进内,否则全部配置失效。

配置项 含义作用 补充说明
mapper-locations 指定MyBatis XML映射文件扫描路径 classpath:mapper/*.xml 代表读取resources/mapper下所有xml
configuration.log-impl 开启控制台打印完整执行SQL 开发调试用,生产建议关闭
configuration.map-underscore-to-camel-case 开启数据库下划线字段自动映射实体驼峰属性 例:库user_name → 实体userName,不用手动起别名

三、配套依赖备忘

  1. MySQL驱动
xml 复制代码
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>
  1. MyBatis整合SpringBoot启动器
xml 复制代码
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>

四、高频坑速查

  1. 查不到mapper、Invalid bound statement:检查 mapper-locations 路径、xml存放位置
  2. 实体接收字段全为null:开启 map-underscore-to-camel-case
  3. 控制台无SQL打印:mybatis缩进错误 / log-impl 配置写错
  4. 数据库时区报错:url拼接 &serverTimezone=Asia/Shanghai