springboot整合mysql5.7_详解SpringBoot整合MyBatis详细教程

本文详述了如何将SpringBoot与MyBatis整合,包括导入依赖、配置数据库、编写实体类、Mapper接口与XML文件,以及Controller实现CRUD操作,并提供了测试步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 导入依赖

首先新建一个springboot项目,勾选组件时勾选Spring Web、JDBC API、MySQL Driver

然后导入以下整合依赖

org.mybatis.spring.boot

mybatis-spring-boot-starter

2.1.3

2. 连接数据库

数据库代码:

-- 创建数据库

CREATE DATABASE springboot;

-- 使用springboot数据库

use springboot;

-- 创建user表

CREATE TABLE IF NOT EXISTS `user`(

`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '身份号',

`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',

`pwd` VARCHAR(30) NOT NULL DEFAULT '123456' COMMENT '密码',

PRIMARY KEY (`id`)

)ENGINE=INNODB DEFAULT CHARSET=utf8

-- 给user表插入数据

INSERT INTO `user`(`id`,`name`,`pwd`)

VALUES ('1','zsr',000204),('2','gcc',000421),('3','BaretH',200024);

然后IDEA连接数据库

打开我们创建的数据库springboot

对应的user表

3. 编写数据库配置信息

在springboot配置文件中配置数据库信息

spring.datasource.username=root

spring.datasource.password=200024

spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

4. 编写pojo实体类

在主程序同级目录下新建pojo包,其中新建User实体类(使用了lombok)

package com.zsr.pojo;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

@Data

@AllArgsConstructor

@NoArgsConstructor

public class User {

int id;

String name;

String password;

}

5. 编写mapper接口

在主程序同级目录下新建mapper包,其中新建UserMapper接口

package com.zsr.mapper;

import com.zsr.pojo.User;

import org.apache.ibatis.annotations.Mapper;

import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper //表示这是Mybatis的mapper类

@Repository

public interface UserMapper {

List queryUserList();

User queryUserByID(int id);

int addUser(User user);

int updateUser(User user);

int deleteUser(int id);

}

6. 编写mapper.xml

在resources目录下新建mabatis包,其中新建mapper包,再在其中新建mapper.xml

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from user

select * from user where id= #{id}

insert into user(id,name,pwd) values (#{id},#{name},#{pwd})

update user set name=#{name},pwd=#{pwd} where id=#{id}

delete from user where id=#{id}

7. 编写controller

在主程序同级目录下新建controller包,在其中新建UserController

package com.zsr.controller;

import com.zsr.mapper.UserMapper;

import com.zsr.pojo.User;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController

public class UserController {

@Autowired

private UserMapper userMapper;

@GetMapping("/queryUserList")

public List queryUserList() {

List users = userMapper.queryUserList();

return users;

}

@GetMapping("/queryUserByID")

public User queryUserByID() {

User user = userMapper.queryUserByID(2);

return user;

}

@GetMapping("/addUser")

public String addUser() {

userMapper.addUser(new User(4, "zml", "45632"));

return "增加用户完毕";

}

@GetMapping("/updateUser")

public String updateUser() {

userMapper.updateUser(new User(4, "zml", "678910"));

return "修改用户完毕";

}

@GetMapping("/deleteUser")

public String deleteUser() {

userMapper.deleteUser(4);

return "删除用户完毕";

}

}

8. 测试

测试访问http://localhost:8080/queryUserList

测试访问http://localhost:8080/queryUserByID

测试访问http://localhost:8080/addUser

测试访问http://localhost:8080/updateUser

测试访问http://localhost:8080/deleteUser

到此这篇关于详解SpringBoot整合MyBatis详细教程的文章就介绍到这了,更多相关SpringBoot整合MyBatis内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

<think>好的,我现在需要帮助用户解决关于SpringBoot整合MySQL的YAML配置问题。用户可能正在寻找一个具体的示例,并关注配置细节。首先,我应该回忆一下SpringBoot中配置MySQL的常见步骤和关键参数。 根据用户提供的引用,特别是引用[2]和引用[3],里面提到了需要在pom.xml中添加依赖,以及在yml文件中配置数据库连接信息。引用[3]中的URL示例显示了一些连接参数,比如时区设置和编码,这些都是常见的配置项,可以防止中文乱码和时区问题。 接下来,我需要考虑用户可能的配置需求。例如,数据库URL的结构、驱动类名称、用户名和密码,以及连接池的设置。HikariCP是Spring Boot默认的连接池,所以应该包含相关配置,比如最大连接数、空闲超时时间等。 另外,用户可能对MyBatis整合也有兴趣,比如指定mapper文件的位置或开启驼峰命名转换。这在引用[2]和引用[4]中有所提及,可能需要配置mybatis.mapper-locations和mybatis.configuration.map-underscore-to-camel-case。 需要注意的是,用户可能遇到的常见问题,比如时区错误导致的连接失败,所以serverTimezone=UTC是一个重要的参数。同时,useSSL=false可能在本地开发时需要,但生产环境不建议使用。 最后,应该提醒用户检查依赖是否正确,比如MySQL驱动版本是否与数据库版本兼容,以及是否需要额外的MyBatis依赖。如果用户使用的是较新的MySQL版本,驱动类名是否正确,比如com.mysql.cj.jdbc.Driver。 现在,我需要将这些思考整理成一个清晰的配置示例,并解释每个参数的作用,确保用户能够理解并正确应用。同时,生成相关问题帮助用户深入学习和排查可能的问题。</think>以下是SpringBoot整合MySQL的yml配置详解及示例: ### 一、基础YAML配置示例 ```yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test_db?useSSL=false&serverTimezone=UTC&characterEncoding=utf8 username: root password: 123456 hikari: maximum-pool-size: 20 idle-timeout: 30000 connection-timeout: 30000 mybatis: mapper-locations: classpath:mapper/*.xml configuration: map-underscore-to-camel-case: true ``` ### 二、关键配置说明 1. **驱动配置** - MySQL 5.7+ 必须使用`com.mysql.cj.jdbc.Driver` - MySQL 5.6及以下使用`com.mysql.jdbc.Driver` 2. **连接URL参数** - `useSSL=false`:禁用SSL连接(生产环境建议开启)[^3] - `serverTimezone=UTC`:统一时区设置,避免时区错误 - `characterEncoding=utf8`:指定字符集防止中文乱码 - `autoReconnect=true`:连接断开自动重连(可选) 3. **连接池配置** - HikariCP默认配置已优化,建议调整: ```yaml hikari: minimum-idle: 5 max-lifetime: 1800000 connection-test-query: SELECT 1 ``` 4. **MyBatis集成** - `mapper-locations`指定XML映射文件路径 - `map-underscore-to-camel-case`开启字段自动转换驼峰命名[^2] ### 三、完整配置示例(含注释) ```yaml spring: datasource: # 数据库连接配置 driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/your_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: dev_user password: Dev@1234 # Hikari连接池配置 hikari: pool-name: SpringBootHikariCP maximum-pool-size: 15 minimum-idle: 5 idle-timeout: 30000 connection-timeout: 10000 max-lifetime: 1800000 connection-test-query: SELECT 1 # MyBatis配置 mybatis: type-aliases-package: com.example.domain mapper-locations: classpath*:mapper/**/*.xml configuration: cache-enabled: true lazy-loading-enabled: true map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` ### 四、常见问题排查 1. **驱动类找不到** - 检查pom.xml是否包含依赖: ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> ``` 2. **时区异常处理** - 在url中添加`serverTimezone=Asia/Shanghai` - 或配置数据库时区为系统时区 3. **SSL连接警告** - 开发环境可添加`useSSL=false` - 生产环境应配置有效SSL证书[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值