被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 连接 MySQL-阿里云开发者社区

开发者社区> 沉默王二> 正文

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

简介: 被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 连接 MySQL
+关注继续查看

上次帮小王入了 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/)就可以了。


image.png


勾选 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 {
    @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


重新运行该项目后再次访问,发现数据插入成功了。


image.png


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


image.png


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


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


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


image.png


快给自己点个赞。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【MySQL使用技巧】JDBC连接
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 记得把Mysql-connector的jar加到Build Path中。 package org.
604 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10080 0
SQL-GROUP BY语句在MySQL中的一个错误使用被兼容的情况
首先创建数据库hncu,建立stud表格。 添加数据: create table stud( sno varchar(30) not null primary key, sname varchar(30) not null, age int, saddress varc...
987 0
如何使用 Workbench 远程连接到 MySQL 数据库 -MySQL Workbench 使用教程
MySQL Workbench 是一款专门为 MySQL 设计的可视化数据库 GUI 管理工具,我们可以在自己的计算机上,使用图形化界面(GUI)远程管理 MySQL 数据库。有关 MySQL 远程管理软件,你可以选择 Windows 下的 HeidiSQL,MacOS 下的 Sequel Ace 或者 MySQL 官方推出的跨平台客户端 MySQL Workbench
368 0
Spring Boot中使用MongoDB的连接池配置
Spring Boot中使用MongoDB的连接池配置
23 0
使用sprintf连接字符串
连接字符串 sprintf 的格式控制串中既然可以插入各种东西,并最终把它们“连成一串”,自然也就能够连接字符串,从而在许多场合可以替代strcat,但sprintf 能够一次连接多个字符串(自然也可以同时在它们中间插入别的内容,总之非常灵活)。
612 0
使用mysql的长连接
  有个资料看得我云里雾里的。现在用自己的言语来总结一下,写文字,能够加深自己的理解。也会在写的过程中帮助自己发现理解方面瑕疵,继续查资料求证。     短链接的缺点:创建一个连接,程序执行完毕后,就会自动断掉与mysqlserver的链接。
1382 0
php高版本不再使用mysql_connect()来连接数据库
想用php生成一个mysql数据字典导出来,用到下面代码会   $mysql_conn = mysql_connect ( "$dbserver", "$dbusername", "$dbpassword" ) or die ( "Mysql connect is error.
1481 0
MySQL---数据库从入门走向大神系列(十三)-BasicDataSource创建DataSource(DBCP连接池配置)
DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。
945 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载