被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 链接 MySQL

上次帮小王入了 Spring Boot 的门后,他以为我这我的和善可亲、平易近人,因而隔天小王又微信我说:“二哥,快教教我,怎么在 Spring Boot 项目中使用 JDBC 链接 MySQL 啊?”java

收到问题的时候,我有点头大,难道之后就要被小王缠上了?mysql

没等我发牢骚,小王就紧接着说:“二哥,你先别生气,上次你帮了个人忙后,我在内心感激了你一夜,想着第一次遇到这么亲切的大佬,必定要抱紧大腿。。。。。”git

马屁拍到这份上,个人气天然也就消了。随后,我花了五分钟的时间帮他解决了苦恼,没成想,他又发给我了一个小红包,表示对个人感谢。并建议我再写一篇文章出来,由于他以为像他这样的小白还有不少。没办法,我关上门,开了灯,开始了今天这篇文章的创做。程序员

0一、初始化 MySQL 数据库

既然要链接 MySQL,那么就须要先在电脑上安装 MySQL 服务(本文暂且跳过),而且建立数据库和表。github

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

0二、使用 Spring Initlallzr 建立 Spring Boot 项目

建立一个 Spring Boot 项目很是简单,经过 Spring Initlallzr(start.spring.io/)就能够了。web

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

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

2)Web 代表该项目是一个 Web 项目,便于咱们直接经过 URL 来实操。sql

3)MySQL Driver:链接 MySQL 服务器的驱动器。数据库

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

5)JDBC:本篇文章咱们经过 JDBC 来链接和操做数据库。

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

0三、编辑 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 关键字) 自动匹配驱动器。

0四、编辑 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:'沉默王二'}

0五、运行 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
复制代码

从新运行该项目后再次访问,发现中文再也不乱码了。

快给本身点个赞。

0六、鸣谢

我是沉默王二,一枚有趣的程序员。若是以为文章对你有点帮助,请微信搜索「 沉默王二 」第一时间阅读,回复【666】更有我为你精心准备的 500G 高清教学视频(已分门别类)。

本文 GitHub 已经收录,有大厂面试完整考点,欢迎 Star。

原创不易,莫要白票,请你为本文点个赞吧,这将是我写做更多优质文章的最强动力。

相关文章
相关标签/搜索