十五,Spring Boot 整合连接数据库(详细配置)

@


JDBC + HikariDataSource(Spring Boot内置的数据库)

HikariDataSource: 目前市面上非常优秀的数据源,是 Spring Boot2默认数据源。

演示 Spring Boot 如何通过 jdbc + HikariDataSource 完成对 MySQL操作。


准备好我们需要测试的数据表,


# 创建 furns_ssm
DROP DATABASE if EXISTS spring_boot
CREATE DATABASE spring_boot USE spring_boot # 创建家居表 数据表
CREATE TABLE furn (
id INT(11) PRIMARY KEY auto_increment, -- id
name VARCHAR(64) not NULL, -- 家具名
maker VARCHAR(64) not null, -- 厂商
`price` DECIMAL(11,2) not null, -- 价格
`sales` INT(11) not null, -- 销量
`stock` INT(11) not null, -- 库存
`img_path` VARCHAR(256) not null -- 照片路径
-- 注意:不是单引号
); SELECT * from furn; INSERT into furn(`id`,`name`,`maker`,`price`,`sales`,`stock`,`img_path`)
VALUES(null,'北欧风格小桌子','熊猫家居',100,666,7,'assets/images/producth')
INSERT into furn(`id`,`name`,`maker`,`price`,`sales`,`stock`,`img_path`)
VALUES(null,'简约风格小椅子','熊猫家居',200,666,7,'assets/images/producth')
INSERT into furn(`id`,`name`,`maker`,`price`,`sales`,`stock`,`img_path`)
VALUES(null,'典雅风格小桌子','蚂蚁家居',100,666,7,'assets/images/producth')
INSERT into furn(`id`,`name`,`maker`,`price`,`sales`,`stock`,`img_path`)
VALUES(null,'温馨风格小桌子','蚂蚁家居',100,666,7,'assets/images/producth')

导入相关的 jar 依赖。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.rainbowsea</groupId>
<artifactId>springboot_database</artifactId>
<version>1.0-SNAPSHOT</version> <!-- 导入SpringBoot 父工程-规定写法-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.3</version>
</parent> <!-- 导入web项目场景启动器:会自动导入和web开发相关的jar包所有依赖【库/jar】-->
<!-- 后面还会在说明spring-boot-starter-web 到底引入哪些相关依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--引入lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency> <!-- 进行数据库开发,引入 data-jdbc starter spring boot 自带的数据库连接池
HikariDataSource--> <!-- 注意:
spring boot 导入的该 jdbc HikariDataSource 数据源
1. HikariDataSource 数据源
2. jdbc 数据链接
3. tx 事务
4. 注意:spring boot 并不能知道,你的项目想要操作的是什么数据库,
所以你需要指定你想要的数据库,告诉spring boot 你想要连接的数据库 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency> <!--
1, 引入mysql 驱动,这里我们引入的是 8.0.26
2. 这个mysql驱动的版本要和实际安装的mysql版本一致
3. 我们的spring-boot mysql 区别仲裁版本是 <mysql.version>8.0.26</mysql.version>
4. 这个mysql 驱动的版本,也可以在pom.xml properties 配置文件当中指定。
-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- <version>8.0.26</version>-->
</dependency> <!-- 如何开发springboot 测试类,我们需要引入 spring-boot-starter-test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency> </dependencies> </project>

注意:我们这里导入的MySQL的版本


<!--
1, 引入mysql 驱动,这里我们引入的是 8.0.26
2. 这个mysql驱动的版本要和实际安装的mysql版本一致
3. 我们的spring-boot mysql 区别仲裁版本是 <mysql.version>8.0.26</mysql.version>
4. 这个mysql 驱动的版本,也可以在pom.xml properties 配置文件当中指定。
-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- <version>8.0.26</version>-->
</dependency>

创建数据表 furn 映射在Java当中的 Bean 对象。这里我们使用了 lombok 插件进行。

package com.rainbowsea.springboot.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor; import java.math.BigDecimal; @Data
@AllArgsConstructor
@NoArgsConstructor // 使用 lombok 插件进行自动配置
public class Furn {
private Integer id;
private String name;
private String maker;
private BigDecimal price;
private Integer sales;
private Integer stock;
private String imgPath = "assets/images/product-image/1.jpg";
}

编写启动程序:

package com.rainbowsea.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext; @SpringBootApplication
public class Application { public static void main(String[] args) {
ConfigurableApplicationContext ioc = SpringApplication.run(Application.class, args); }
}

我们需要在类路径下 resources 创建一个名为 application.yaml 文件,编写连接的数据库信息。

spring:
datasource:
url: jdbc:mysql://localhost:3306/spring_boot?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username: root
password: MySQL123
driver-class-name: com.mysql.cj.jdbc.Driver

运行测试:

这里我们编写测试程序,注意使用:@SpringBootTest 注解有两个注意事项:

  1. 在 Spring Boot 当中,使用 @SpringBootTest 注解,必须要定义好,场景启动器,如果没有定义场景启动器,是会报错的。

  1. 使用 @SpringBootTest 测试的类,一定要和实际main类,所在包一致 ,不然也是会报错的。如果所在包不一致的话,则需要,使用@SpringBootTest当中的classes 类。

运行测试:

最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

十五,Spring Boot 整合连接数据库(详细配置)的更多相关文章

  1. Spring Boot2 系列教程(二十五)Spring Boot 整合 Jpa 多数据源

    本文是 Spring Boot 整合数据持久化方案的最后一篇,主要和大伙来聊聊 Spring Boot 整合 Jpa 多数据源问题.在 Spring Boot 整合JbdcTemplate 多数据源. ...

  2. Spring Boot2 系列教程(三十二)Spring Boot 整合 Shiro

    在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro. 今天松哥就来和大家聊聊 Spring Boot ...

  3. Spring Boot2 系列教程(十八)Spring Boot 中自定义 SpringMVC 配置

    用过 Spring Boot 的小伙伴都知道,我们只需要在项目中引入 spring-boot-starter-web 依赖,SpringMVC 的一整套东西就会自动给我们配置好,但是,真实的项目环境比 ...

  4. Spring Boot2 系列教程(二十八)Spring Boot 整合 Session 共享

    这篇文章是松哥的原创,但是在第一次发布的时候,忘了标记原创,结果被好多号转发,导致我后来整理的时候自己没法标记原创了.写了几百篇原创技术干货了,有一两篇忘记标记原创进而造成的一点点小小损失也能接受,不 ...

  5. Spring Boot2 系列教程(二十四)Spring Boot 整合 Jpa

    Spring Boot 中的数据持久化方案前面给大伙介绍了两种了,一个是 JdbcTemplate,还有一个 MyBatis,JdbcTemplate 配置简单,使用也简单,但是功能也非常有限,MyB ...

  6. Spring Boot2 系列教程(二十九)Spring Boot 整合 Redis

    经过 Spring Boot 的整合封装与自动化配置,在 Spring Boot 中整合Redis 已经变得非常容易了,开发者只需要引入 Spring Data Redis 依赖,然后简单配下 red ...

  7. Spring Boot2 系列教程(五)Spring Boot中的 yaml 配置

    搞 Spring Boot 的小伙伴都知道,Spring Boot 中的配置文件有两种格式,properties 或者 yaml,一般情况下,两者可以随意使用,选择自己顺手的就行了,那么这两者完全一样 ...

  8. Spring Boot2 系列教程(十九)Spring Boot 整合 JdbcTemplate

    在 Java 领域,数据持久化有几个常见的方案,有 Spring 自带的 JdbcTemplate .有 MyBatis,还有 JPA,在这些方案中,最简单的就是 Spring 自带的 JdbcTem ...

  9. Spring Boot2 系列教程(二十六)Spring Boot 整合 Redis

    在 Redis 出现之前,我们的缓存框架各种各样,有了 Redis ,缓存方案基本上都统一了,关于 Redis,松哥之前有一个系列教程,尚不了解 Redis 的小伙伴可以参考这个教程: Redis 教 ...

  10. dubbo学习(十)spring boot整合dubbo

    工程搭建与配置 生产者 1.创建一个生产者的spring boot工程,配置好依赖,并把接口实现类文件夹复制到新的工程里 2.pom.xml配置dubbo的相关依赖 <!-- Dubbo Spr ...

随机推荐

  1. vue 理解yarn start 和yarn dev的区别

    yarn dev,当文件变动后,会自动重启. yanr start不会自动重启 nodemon会监听文件变动,跟yarn dev和yarn start无关.

  2. 题解:AT_abc357_f [ABC357F] Two Sequence Queries

    题意 维护一个数据结构,支持两个数列的区间求和,和查询区间内两数列各元素积的和. 分析 线段树万岁! 这道题要维护两个序列,所以线段树中要同时存储两个区间和.但还要在维护一个信息,是该区间内两序列元素 ...

  3. SQL Server 帐号权限管理及C#编程应用(图解)

    昨晚在群里讲解这部分内容,因为好久没操作过了,差点翻车...今天把它整理一下发出来,方便没听明白的小伙伴学习和理解. 我们平时学习数据库时,要么使用sa帐号,要么用windows默认帐号登录,总之都拥 ...

  4. Jenkins 配合Pipeline使用Docker

    配合Pipeline使用Docker 许多组织使用Docker跨机器统一构建和测试环境,并为部署应用程序提供高效机制.从Pipeline 2.5及更高版本开始,Pipeline内置了从Jenkinsf ...

  5. LeetCode654. 最大二叉树

    题目链接:https://leetcode.cn/problems/maximum-binary-tree/description/ 题目叙述 给定一个不重复的整数数组 nums . 最大二叉树 可以 ...

  6. docker 6.1测试

    https://www.cnblogs.com/xiugeng/p/10193333.html#_label1 1.设置重启策略 [root@docker ~]# cat /etc/docker/da ...

  7. 【ECharts】01 快速上手

    简单介绍: ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求. ECharts 遵循 Apache-2.0 开源协议,免费商用. ECharts 兼容 ...

  8. 人形机器人(具身智能,Embodied Intelligence)—— 抓取动作(上半身动作规划)的各大公司技术路线

    视频地址: https://www.youtube.com/watch?v=UZBSXzNKB1Q

  9. ubuntu18.04环境下如何为 vs code 实现ftp功能

    如前文所述  https://www.cnblogs.com/devilmaycry812839668/p/14797739.html , 在vs code 自身环境下的ftp功能插件难以使用,而在W ...

  10. 【转载】网络协议之:sctp流控制传输协议

    原文地址: https://www.cnblogs.com/flydean/p/16277006.html ============================================== ...