上次帮小王入了 Spring Boot 的门后,他觉得我这个人和蔼可亲、平易近人,于是隔天小王又微信我说:“二哥,快教教我,怎么在 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;

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 服务器的驱动器。

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 {@Autowiredprivate 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

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

快给自己点个赞。

06、鸣谢

好了,各位读者朋友们,答应小王的文章终于写完了。能看到这里的都是最优秀的程序员,升职加薪就是你了

被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 连接 MySQL相关推荐

  1. Spring Boot中的微信支付(小程序)

    前言 微信支付是企业级项目中经常使用到的功能,作为后端开发人员,完整地掌握该技术是十分有必要的. 一.申请流程和步骤 图1-1 注册微信支付账号 获取微信小程序APPID 获取微信商家的商户ID 获取 ...

  2. 故事:坐在我隔壁的小王问我什么是HyperLogLog

    1 最近坐我隔壁的小王同志,心情真是糟透了.不但工作不顺心,被老板狠狠的批了一顿,连女朋友也跟别人跑了(Y 的让你天天在我面前秀). 真是不可谓不惨,我都快要同情他了. 看着他萎靡又迷离的眼神,我实在 ...

  3. git上托管的代码如何部署在阿里云上_居然仅用浏览器搞定Spring Boot应用的开发与部署...

    最近有幸试用了一下阿里云的一个新产品:云开发平台,体验一把全新的开发模式!虽然中间也碰到了一些问题,但整体的体验透露着未来感,因为整个过程都不需要使用我们最常用的IDEA,仅依靠浏览器就把一个Spri ...

  4. 阿里P8架构师王福强大牛,[Spring boot揭秘]引领程序员成神之路

    前言: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配 ...

  5. vue和小程序哪个好学一点_litemall,Spring Boot后端,微信小程序用户前端 + Vue用户移动端...

    litemall 又一个小商场系统. litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端 注意: 由于第一次加载数据量较大,建议wif ...

  6. 组态王中PLC数据连接MySQL数据库教程

    南方科技大学创新设计课程朗坤项目组 前言:本文作者非专业编程专业,相关教程可能不是很严格,仅仅提供一种思路,方便今后各位解决PLC数据抓取的问题.如果有什么遗漏,欢迎各位前辈批评斧正,不胜感激. PL ...

  7. Spring Boot 中yml文件小图标不正确解决方案

    正确图标如图: 如果你采用后缀名为yml则会出现灰色图标,并且输入属性名称是不会有任何提示,所以可以尝试将后缀名改为yaml;

  8. 组态中怎么使用mysql数据库_组态王中PLC数据连接MySQL数据库教程

    操作步骤: ①     确定中控室电脑连网,并且安装MySQL环境,下载地址如下:https://www.mysql.com/downloads/ ②     修改win MySQL服务信息(最好修改 ...

  9. 小王的智能箱子,看完泪目

    原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处. 小王的产品终于研究成功了.他扯了扯领带,尽量让自己放松一些,他将要验证一个伟大的时刻. 面前是一个1/3人高的箱子,箱子侧 ...

最新文章

  1. 正则表达式判断号码靓号类型
  2. DNS通道检测 国内学术界研究情况——研究方法:基于特征或者流量,使用机器学习决策树分类算法居多...
  3. 单例模式双重校验锁_滴滴面试官:如何实现一个线程安全的单例模式
  4. linux下telnet失败怎么处理,CentOS下telnet退出失败的解决办法
  5. Jsoup(三)-- Jsoup使用选择器语法查找DOM元素
  6. java 图片上传 预览 demo_图片上传预览
  7. 剑指offer——二进制中1的个数(c++)
  8. 上海计算机一级flash真题,2011年上海市一级考PS与Flash试卷.docx
  9. mysql 的安装目录linux命令_linux查看mysql安装目录
  10. 解决 xshell 上面 zsh 的 home end 无效问题
  11. backbond Model实现
  12. 用python爬虫抓站的一些技巧
  13. selenium 各浏览器driver下载地址
  14. 电脑连接了HDMI线,电脑没有声音了,原因和解决办法
  15. 智慧遂川城管建设项目-容灾备份一体机
  16. 2017杭州云栖大会100位大咖视频+讲义全分享
  17. 关于“微笑涛声”博客
  18. 解决u盘不能格式化的问题
  19. 谈谈红楼梦(第1-5回)
  20. Spring 注解 属性赋值与自动注入装配

热门文章

  1. 数据库 表空间详解以及其使用方法 (Oracle)
  2. Google Play预注册使用方法与介绍
  3. linux查看tomcat 控制台,linux 下查看Tomcat的状态,以及开启停止服务命令
  4. Word或者Excel中怎么把 空格 替换成 换行
  5. java:下拉列表框组件
  6. 微信PC电脑桌面端多账号登录微信多开方法
  7. python记录鼠标键盘操作自动执行重复工作
  8. LruCache的深入解析
  9. springboot项目搭建0051-通用mapper使用mapper.xml
  10. 点云3d检测SA-SSD