SpringBoot内置数据源-持久化-数据库

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: SpringBoot内置数据源-持久化-数据库
在这里插入图片描述

🍁博客主页:👉不会压弯的小飞侠
✨欢迎关注:👉点赞👍收藏⭐留言✒
✨系列专栏:👉SpringBoot专栏(每日更新)
✨如果觉得博主的文章还不错的话,请三连支持一下博主。
🔥欢迎大佬指正,一起 学习!一起加油!
在这里插入图片描述

在这里插入图片描述

🍁数据层解决方案

  • SQL
  • NoSQL

🍁与SQL有关的解决方案

  • 现有数据层解决方案技术选型

    • Druid + MyBatis-Plus + MySQL
    • 数据源:DruidDataSource
    • 持久化技术:MyBatis-Plus / MyBatis
    • 数据库:MySQL

🍁 SpringBoot提供了3种内嵌的数据源对象供开发者选择

  • HikariCP
  • Tomcat提供DataSource
  • Commons DBCP

🔥平常做项目时我所需要的maven坐标

  • 数据源
       <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.8</version>
        </dependency>
  • 持久化技术
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>        
  • 数据库
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>

🔥 springboot中的数据源
若不提供数据源(例如删除上面的Druid的坐标,就默认使用这三种中的一种(HikariCP默认)

  • HikariCP:默认内置数据源对象
  • Tomcat提供DataSource: HikariCP不可用的情况下,且在web环境中,将使用tomcat服务器配置的数据源对象
  • Commons DBCP: Hikari不可用,tomcat数据源也不可用,将使用dbcp数据源

🔥 删掉durid的maven坐标,将数据源换成HikariCP

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC
    hikari:
      driver-class-name=com: com.mysql.cj.jdbc.Driver
      username: root
      password: root

🍁内置持久化解决方案

🔥 导入坐标

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

🔥编写测试类:

package com.jkj;

import com.jkj.dao.BookDao;
import com.jkj.domian.Book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

@SpringBootTest
class Springboot09SqlApplicationTests {
    /*@Autowired
    private BookDao bookDao;*/
    /*@Test
    void contextLoads() {
        *//*bookDao.selectById(2);*//*
    }*/

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Test
    void JDBCTEST() {
//        jdbcTemplate.update();//增删改
//        jdbcTemplate.query(); //查询
//        jdbcTemplate.queryForObject();//查询单个对象

/*     一般不使用这种格式
        String sql ="select * from tbl_book";
        List<Map<String,Object>> maps = jdbcTemplate.queryForList(sql);
        System.out.println(maps);*/

        RowMapper<Book> rm = new RowMapper<Book>() {
            @Override
            public Book mapRow(ResultSet resultSet, int i) throws SQLException {
//              ResultSet resultSet 其实就是结果集
                Book temp = new Book();
                temp.setId(resultSet.getInt("id"));
                temp.setName(resultSet.getString("name"));
                temp.setType(resultSet.getString("type"));
                temp.setDescription(resultSet.getString("description"));
                return temp;
            }
        };

        String sql = "select * from tbl_book  ";
        List<Book> list = jdbcTemplate.query(sql, rm);
        System.out.println(list);
    }
}

🔥JdbcTemplate的其它配置

spring:
jdbc:
template:
query-timeout: -1   #查询超时时间
max-rows: 500       #最大行数
fetch-size: -1      #缓存行数

🍁Springboot内置数据库

🔥 SpringBoot提供了3种内嵌数据库供开发者选择,提高开发测试效率

  • H2
  • HSQL
  • Derby

🔥 导入依赖;

       <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

🔥 配置H2管理控制台参数

server:
  port: 80
spring:
  h2:
    console:
      path: /h2
      enabled: true

运行项目,在网页进行访问,连接之后,发现连接异常,因为首次使用的原因,只需要在配置文件中配置相应的数据源就ok了,重新启动成功后,这些配置可以删除,也可以留着。
在这里插入图片描述

server:
  port: 80
spring:
  h2:
    console:
      path: /h2
      enabled: true

  datasource:
    url: jdbc:h2:~/test
    hikari:
      driver-class-name=com: org.h2.Driver
      username: sa
      password: 123456

🔥运行项目
在这里插入图片描述
🔥 输入密码登录
在这里插入图片描述
在这里插入图片描述
🔥添加一个表
在这里插入图片描述
🔥添加数据后,查询表信息
在这里插入图片描述
🔥 测试

@Test
    void testJdbcTemplateSave(@Autowired JdbcTemplate jdbcTemplate){
        String sql="insert into tbl_book values(3,'斗罗大陆','科幻','左手蓝银草右手昊天锤')";
        jdbcTemplate.update(sql);

    }
⭐⭐⭐注意: H2内置数据库这仅仅用于开发阶段,线上项目请务必关闭控制台功能

🍁与NoSQL有关的解决方案正在总结中......................................................................

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
19天前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
215 4
|
8月前
|
JSON Java 关系型数据库
Hutool创建数据源工厂动态查询不同数据库不同数据表的数据
Hutool创建数据源工厂动态查询不同数据库不同数据表的数据
169 2
|
9月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
9月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue的班级综合测评管理系统设计与实现(系统源码+文档+数据库+部署等)
✌免费选题、功能需求设计、任务书、开题报告、中期检查、程序功能实现、论文辅导、论文降重、答辩PPT辅导、会议视频一对一讲解代码等✌
|
9月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
9月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的冬奥会科普平台设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
19天前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
56 3
|
25天前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
12天前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
13天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。