怎么在 Spring Boot 中使用 JDBC 连接 MySQL

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 怎么在 Spring Boot 中使用 JDBC 连接 MySQL

01、初始化 MySQL 数据库
既然要连接 MySQL,那么就需要先在电脑上安装 MySQL 服务(本文暂且跳过),并且创建数据库和表。

CREATE DATABASE springbootdemo;
DROP TABLE IF EXISTS mysql_datasource;
CREATE TABLE mysql_datasource (
id varchar(64) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

阿里云服务器1核2G低至82元/年,阿里云官活动网址:https://dashi.aliyun.com/site/yun/aliyun 可以用20代金券,即102-20=82。

02、使用 Spring Initlallzr 创建 Spring Boot 项目
创建一个 Spring Boot 项目非常简单,通过 Spring Initlallzr(https://start.spring.io/)就可以了。

勾选 Lombok、Web、MySQL Driver、Actuator、JDBC 等五个依赖。

1)Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的一些冗余代码,比如说可以通过注解生成 getter/setter。使用之前需要先在 IDE 中安装插件。

2)Web 表明该项目是一个 Web 项目,便于我们直接通过 URL 来实操。

3)MySQL Driver:连接 MySQL 服务器的驱动器。

申请阿里云服务时,可以使用2000元阿里云代金券,阿里云官网领取网址:https://dashi.aliyun.com/site/yun/youhui

4)Actuator 是 Spring Boot 提供的对应用系统的自省和监控的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的 Spring beans 以及一些环境属性等。

5)JDBC:本篇文章我们通过 JDBC 来连接和操作数据库。

选项选择完后,就可以点击【Generate】按钮生成一个初始化的 Spring Boot 项目了。生成的是一个压缩包,导入到 IDE 的时候需要先解压。

03、编辑 application.properties 文件
项目导入成功后,等待 Maven 下载依赖,完成后编辑 application.properties 文件,配置 MySQL 数据源信息。

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springbootdemo
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
1)spring.datasource. 为固定格式。

2)URL 为 MySQL 的连接地址。

3)username 为数据库的访问用户名。

4)password 为数据库的访问密码。

5)driver-class-name 用来指定数据库的驱动器。也可以不指定,Spring Boot 会根据 URL(有 mysql 关键字) 自动匹配驱动器。

04、编辑 Spring Boot 项目
为了便于我们操作,我们对 SpringBootMysqlApplication 类进行编辑,增加以下内容。

@SpringBootApplication
@RestController
public class SpringBootMysqlApplication {

@Autowired
private JdbcTemplate jdbcTemplate;

@RequestMapping("insert")
public String insert() {

String id = UUID.randomUUID().toString();
String sql = "insert into mysql_datasource (id,name) values ('"+id+"','沉默王二')";
jdbcTemplate.execute(sql);
return "插入完毕";

}
}
1)@SpringBootApplication、@RestController、@RequestMapping 注解在[之前的文章]()中已经介绍过了,这里不再赘述。

2)@Autowired:顾名思义,用于自动装配 Java Bean。

3)JdbcTemplate:Spring 对数据库的操作在 jdbc 上做了深层次的封装,利用 Spring 的注入功能可以把 DataSource 注册到 JdbcTemplate 之中。JdbcTemplate 提供了四个常用的方法。

①、execute() 方法:用于执行任何 SQL 语句。

②、update() 方法:用于执行新增、修改、删除等 SQL 语句。

③、query() 方法:用于执行查询相关 SQL 语句。

④、call() 方法:用于执行存储过程、函数相关 SQL 语句。

本例中我们使用 execute() 方法向 mysql_datasource 表中插入一行数据 {id:uuid, name:'沉默王二'}。

05、运行 Spring Boot 项目
接下来,我们直接运行 SpringBootMysqlApplication 类,这样一个 Spring Boot 项目就启动成功了。

这时候,我们可以直接浏览器的 URL 中键入 http://localhost:8080/insert 测试 MySQL 的插入语句是否执行成功。很遗憾,竟然出错了。

该怎么办呢?这需要我们在连接字符串中显式指定时区,修改 spring.datasource.url 为以下内容。

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springbootdemo?serverTimezone=UTC
重新运行该项目后再次访问,发现数据插入成功了。

为了确保数据是否真的插入成功了,我们通过 Navicat(一款强大的数据库管理和设计工具)来查看一下。

情况不妙,中文乱码了。该怎么办呢?需要我们在连接字符串中显式指定字符集,修改 spring.datasource.url 为以下内容。

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springbootdemo?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
重新运行该项目后再次访问,发现中文不再乱码了。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
Java 数据库连接
JDBC连接复习
JDBC连接复习
40 1
|
3月前
|
缓存 NoSQL Java
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
|
4天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
14 2
|
1月前
|
设计模式 前端开发 Java
Spring MVC——项目创建和建立请求连接
MVC是一种软件架构设计模式,将应用分为模型、视图和控制器三部分。Spring MVC是基于MVC模式的Web框架,通过`@RequestMapping`等注解实现URL路由映射,支持GET和POST请求,并可传递参数。创建Spring MVC项目与Spring Boot类似,使用`@RestController`注解标记控制器类。
34 1
Spring MVC——项目创建和建立请求连接
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
52 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
2月前
|
Java 数据库连接 数据库
SpringBoot 整合jdbc和mybatis
本文详细介绍了如何在SpringBoot项目中整合JDBC与MyBatis,并提供了具体的配置步骤和示例代码。首先,通过创建用户实体类和数据库表来准备基础环境;接着,配置Maven依赖、数据库连接及属性;最后,分别展示了JDBC与MyBatis的集成方法及其基本操作,包括增删查改等功能的实现。适合初学者快速入门。
SpringBoot 整合jdbc和mybatis
|
1月前
|
SQL Java 数据库
Springboot+spring-boot-starter-data-jdbc实现数据库的操作
本文介绍了如何使用Spring Boot的spring-boot-starter-data-jdbc依赖来操作数据库,包括添加依赖、配置数据库信息和编写基于JdbcTemplate的数据访问代码。
47 2
|
1月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
53 2
|
1月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
58 2
|
3月前
|
SQL Java 数据库连接
Java开发者必知:JDBC连接数据库的“三大法宝”
Java开发者必知:JDBC连接数据库的“三大法宝”
34 7