Spring - 周边设施 - H2 embedded 版本引入
1. 概述
- 在 Spring 开发中, 引入 H2 做辅助测试数据库
2. 场景
复习 Spring, 复习到 持久化 部分
- 需要一个 数据库 来做测试
方案
方案1: 搭建 MySQL 实例
- 虽然现在有 docker 环境, 但我还是懒得弄
- 真的懒...
- 虽然现在有 docker 环境, 但我还是懒得弄
方案2: 使用 H2 数据库
- 使用 embedded 版本
- 可以使用 内存数据库
- 随用随启
- 数据每次都是新的
- 嗯, 决定就是它了
- 使用 embedded 版本
思路
- H2 的使用, 也特别简单
- maven 添加好依赖
- 简单配置
- 启动项目
- 验证启动即可
- H2 的使用, 也特别简单
3. 环境
os
- win10
jdk
- 1.8
ide
- ida 2018.1
spring
- spring boot
- 2.1.7 release
- 组件
- thymeleaf
- starter-web
- devtool
- starter-test
- spring boot
browser
- firefox
- 70.0
- firefox
H2
- 1.4.197
ref
- spring in action 5th
4. 步骤们
1. 引入依赖
概述
- 在 pom 文件里引入依赖
代码如下
<!-- JdbcTemplate -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency> <!-- h2 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
解释
- 引入 JdbcTemplate
- 与 H2 交互的时候, 真的需要驱动
- 引入 H2
- 使用数据库
- 引入 JdbcTemplate
注意
- 引入后一定要确保 lib 下下来
- 我没有确认, 然后傻等了好久
- 都开始找 bug 了
- 引入后一定要确保 lib 下下来
2. 配置
概述
- H2 数据库的启动, 打开 web console
- 因为启动在 spring 的同个 jvm 里, 不太好确认
- 可以通过 run > endpoint > health 下看到 有个 db
- 因为启动在 spring 的同个 jvm 里, 不太好确认
- H2 数据库的启动, 打开 web console
配置文件
# dataSource: H2
## H2: 开启 console
### 开启 console
spring.h2.console.enabled=true
### 设定 console 路径
spring.h2.console.path=/console
3. 验证
重启项目
打开浏览器, 进入 console
# 如果能打开, 说明启动成功了
localhost:8080/console
ps
ref
- Spring Boot – Spring Data JPA with Hibernate and H2 Web Console
- 这里用的是 jpa 配合 hibernate 的方案, 可以看看
- Spring Boot – Spring Data JPA with Hibernate and H2 Web Console
问题
- 我们要测试的数据, 如何写入
- 我们写入后, 如何通过这个 console 查看
- 这些问题, 我会在后面的博客里继续说明
Spring - 周边设施 - H2 embedded 版本引入的更多相关文章
- Spring - 周边设施 - H2 数据库启动时写入数据
1. 概述 之前讲到了 H2 的引入 这下我想说说 H2 启动时的 数据导入 2. 场景 需求 启动项目后, H2 启动起来 环境数据会自动注入 H2 数据库 可以验证是否成功 3. 环境 os wi ...
- spring boot整合H2数据库
一.背景: .H2数据库是一个开源的关系型数据库.H2是一个嵌入式数据库引擎,采用java语言编写,不受 平台的限制,同时支持网络版和嵌入式版本,有比较好的兼容性,支持相当标准的sql标准,支持集群. ...
- Spring Boot + Mybatis + H2 database数据库
H2 Database H2 由纯 Java 编写的开源关系数据库,可以直接嵌入到应用程序中,不受平台约束,便于测试. h2数据库特点 (1)性能.小巧 (2)同时支持网络版和嵌入式版本,另外还提供了 ...
- 厉害了,Spring Cloud Alibaba 发布 GA 版本!
? 小马哥 & Josh Long ? 喜欢写一首诗一般的代码,更喜欢和你共同 code review,英雄的相惜,犹如时间沉淀下来的对话,历久方弥新. 相见如故,@杭州. 4 月 18 日, ...
- Spring Boot with H2 Database
Learn to configure H2 database with Spring boot to create and use an in-memory database in runtime, ...
- 2018-08-24 中文代码之Spring Boot对H2数据库简单查询
续前文: 中文代码之Spring Boot集成H2内存数据库 在词条中添加英文术语域: @Entity public class 词条 { @Id private long id; private S ...
- Spring官网下载各版本jar包
1:浏览器输入官网地址:http://spring.io/projects 2:点击如图树叶页面按钮. 3:点击如图小猫图片按钮. 4:查找downloading spring artifacts ...
- InnoSQL HA Suite的实现原理与配置说明 InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync replicaiton)的功能 MySQL 5.6支持了crash safe功能
InnoSQL HA Suite的实现原理与配置说明 InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync repl ...
- Spring Cloud 升级最新 Finchley 版本,踩坑指南!
https://blog.csdn.net/youanyyou/article/details/81530240 Spring Cloud 升级最新 Finchley 版本,踩了所有的坑! 2018年 ...
随机推荐
- 反射_python
一.反射(通过字符串的形式去操作对象中的成员) 1.getattr:获取对象中的字段和方法 2.hasattr:判断对象里面是否有字段或方法 3.setattr:设置对象里面的字段或方法 4.dela ...
- Wannafly Camp 2020 Day 7K 修炼
搞了半天才发现TMD是个模拟 #include <bits/stdc++.h> using namespace std; #define int long long int x,y,p,q ...
- dijkstra算法为什么不能处理带有负边权的图
1 2 3 1 0 8 9 2 10 0 10 3 10 -2 0 先看样例再解释,看邻接矩阵会发现, 如果用dijkstra算1-2的最短路因为贪心思想所以得到的结果是8,但明显可以看到1-3- ...
- 页面回显与URL模板映射
一.页面回显 对于需要返回界面的数据,可以将后台封装好的数据回显至原始jsp界面中. 举个例子: User.java package com.zk.data; public class User { ...
- 关于pip命令的几点提醒
pip install xxxxx 总会遇到安装失败,或者下载速度很慢的情况.这是因为从国外安装资源包,造成速度慢,那有咩有国内的源呢,有的. 国内源: 清华:https://pypi.tuna.ts ...
- 优酷1080p的kux格式文件转码
@echo off for /r . %%i in (*.kux) do ( "C:\Program Files (x86)\YouKu\YoukuClient\nplayer\ffmpeg ...
- 大数据-Storm
Storm 流式处理框架 Storm是实时的,分布式,高容错的计算系统.java+cljoure Storm常驻内存,数据在内存中处理不经过磁盘,数据通过网络传输. 底层java+cljoure构成, ...
- Web服务与应用
一.Apache 1.1 简介 Apache是一个高稳定,商业级别开源的Web服务器 1.2 下载镜像 DockerHub官方提供Apache镜像不带PHP环境,也就是不是动态网页页面,只能生成静态的 ...
- crontab调用python脚本新思路
crontab调用python脚本文件,有可能失败,定时执行并没有执行,怎么办? 答:写一个shell脚本调用python,然后用crontab调用shell脚本.具体细节,有时间补充. ————— ...
- c++primer练习题
2.7 输出地址和姓名(1 #include <iostream> using namespace std; int main() { int 距离; cout << &quo ...