传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解

内置数据源

我们回顾一下druid数据源的配置方式

通过type属性指定数据源的类型

导入依赖 starter就使用了spring的自动装配功能

格式二是在引入druid的依赖的基础上

进行的一种配置方式

Tomcat内部也可以进行数据源的配置

轻量级中最快的数据源对象

我们切换德鲁伊连接池

我们查看一下hikari的配置

小结

JdbcTemplate

默认的持久化的技术

简述

这个技术目前不太有人用

导入依赖

当我们导入JDBC starter 的依赖时

自动配置了数据源

是一个操作数据库的模版对象

我们去掉Mybatis-plus的依赖后

就不能使用BaseMapper的接口

而且数据层接口也不能加载为bean后注入测试

实操

这样进行测试

测试一下查询功能

我们首先要建立一个行列式模型

把数据封装进去

然后定义sql语句

调用jdbcTemplate里面的方法

这边要是写增删改

也是很简单

直接换sql语句就行哈

小结

H2数据库

内存级的数据库

我们用内置数据源

和新的持久化技术

我们的数据库也可以换其他的内嵌数据库

我们能把java程序放到spring容器里面

内嵌服务器是在内存里面

不是一个独立的程序

我们数据库代码书写量很小

而且启动起来都是在内存运行 测试

等到上线的时候直接换其他数据库如轻量级数据库MySQL

实操

我们启动的话

复制代码
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>

对于我们的H2数据库

我们也有界面

我们先要进行配置

复制代码
spring:
  datasource:
    # 数据库
    url: jdbc:h2:~/mydb
    driver-class-name: org.h2.Driver
    username: root
    password: 123456
  h2:
    console:
      path: /h2  #h2嵌入式数据库控制台,可以通过浏览器访问
      enabled: true

本地路径

访问路径H2

我们找到了H2数据库和他的配置文件

网页控制台

填写信息

进入控制台

创建表的语句

也是用SQL语句

点击表

会自动显示表的创建数据

插值语句

查询所有

测试

我们接下来要在java程序中使用H2数据库

我们接着用jdbcTemplate

进行插值语句的测试

jdbcTemplate读取的是配置文件

yml里面的datasource里面的配置

读取的是H2的配置

是一个内存级的数据库

复制代码
package com.example.demo;

import com.example.demo.dao.GoodDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;

@SpringBootTest
class DemoApplicationTests {

    @Test
    void testJdbcTemplateSave(@Autowired JdbcTemplate jdbcTemplate){
        String sql="insert into tbl_book values(3,'sb','sb')";
        System.out.println(jdbcTemplate.update(sql));
    }

}

这些技术

在换的时候简直是无缝衔接

小结

这是一个非常大的安全隐患

记得上线的时候一定要把H2数据库关掉

小结

个人号推广

博客主页

多多!-CSDN博客

Web后端开发

https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482

Web前端开发

https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482

数据库开发

https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482

项目实战

https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482

算法与数据结构

https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482

计算机基础

https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482

回忆录

https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482

相关推荐
风清云淡_A13 小时前
【JPA】spring集成jpa实战之数据增删改查入门教程(二)
java
让我上个超影吧13 小时前
天机学堂——播放进度方案优化
java·spring boot·redis·spring cloud
月空MoonSky13 小时前
解决使用Notepad++出现异型字或者繁体字体问题
java·javascript·notepad++
深入技术了解原理13 小时前
引入eureka依赖但是无法注册:无法解析配置属性 ‘eureka.client.service-url.defaultZone‘
spring boot·spring cloud·云原生·eureka
Filotimo_13 小时前
JWT的概念
java·开发语言·python
刘大猫.13 小时前
XNMS项目-mysql数据库同步
数据库·统计·同步·数据同步·数据统计·数据库同步·业务统计
min18112345613 小时前
软件升级全流程步骤详解
android·java·服务器
黎雁·泠崖13 小时前
Java字符串系列总结篇|核心知识点速记手册
java·开发语言
biyezuopinvip13 小时前
基于Spring Boot的社区互助平台设计与实现(毕业论文)
java·spring boot·vue·毕业设计·论文·毕业论文·社区互助平台设计与实现
Coder_Boy_13 小时前
基于SpringAI的在线考试系统-试卷管理与考试管理模块联合回归测试文档
人工智能·spring boot·架构·领域驱动