## 一. 内存数据库介绍
内存数据库也即是我们常说的嵌入式数据库,常用的开源嵌入式数据库有:H2,Derby,HSQLDB,Sqlite,MySQL Embedded。其中H2和HSQLDB相似,使用比较简单,而其它的数据库大部分都须要安装独立的客户端和服务器端。所以平台集成H2作为内存数据库使用。
![](https://img.kancloud.cn/75/d4/75d4dd82622e2174694f64df755f22ec_818x333.jpg)
## 二. H2简介
1、h2采用纯Java编写,因此不受平台的限制。
2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。
3、h2提供了一个十分方便的web控制台用于操作和管理数据库内容。
4、功能完整,支持标准SQL和JDBC,支持基本的全文搜索,与mysql 数据库兼容性最强。
5、支持内嵌模式、服务器模式和集群。
## 三. 常见使用场景:
1、用于单元测试,采用内存模式启动速度快,每一个用例执行完数据随即还原到初始状态。
2、作为缓存,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型,可以拿它当redis使用,存储少量结构化数据,作为后端MySQL/Oracle的一个缓冲层,缓存一些不经常变化但需要频繁访问的数据,比如字典表、权限表。
3、H2适合百万条记录以下的存储,大数据量不是它有强项。
4、生产环境慎重使用,稳定性和oracle、mysql等有差距。
## 四. POM.XML引用
~~~
<dependency>
<groupId>com.sca4cloud</groupId>
<artifactId>sca-common-memdb</artifactId>
<version>${last.version}</version>
</dependency>
~~~
## 五. application.yml配置
### 1、内存模式
![](https://img.kancloud.cn/ba/fe/bafe7659e58e037bd301d7ecbe6c4579_836x165.jpg)
![](https://img.kancloud.cn/cc/30/cc30b51492a76ae5108e514677a9360d_573x442.jpg)
### 2、本地文件模式
![](https://img.kancloud.cn/37/86/378611fdc625bbe590b32843588b420f_632x160.jpg)
![](https://img.kancloud.cn/41/7f/417f469f3e0609e645d77f807df67607_585x456.jpg)
### 3、控制台配置
![](https://img.kancloud.cn/b2/6b/b26bff79c1d995616b7aa323ec1e0e0b_682x311.jpg)
![](https://img.kancloud.cn/ec/0d/ec0db770f4e0ede7b399b914f3c87649_1358x475.jpg)
### 4、多数据源配置
建议采用`Druid + Mybatisplus + dynamic-datasource-spring-boot-starter`实现:
* `pom.xml`配置
~~~
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
</dependency>
~~~
* `application.yml`配置
~~~
spring:
datasource:
dynamic:
primary: db1 # 配置默认数据库
datasource:
db1: # 数据源1配置
url: jdbc:mysql://localhost:3306/db1?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
db2: # 数据源2配置
url: jdbc:mysql://localhost:3306/db2?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
durid:
initial-size: 1
max-active: 20
min-idle: 1
max-wait: 60000
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 去除druid配置
~~~
DruidDataSourceAutoConfigure需要排除,否则会报错。排除方式有两种,一种是上述配置文件排除,还有一种可以在项目启动类排除:
~~~
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
~~~
* 多数据源使用,请参考官方文档,[链接](https://dynamic-datasource.com/)
## 六. H2单独运行
H2也可以像Mysql一样单独部署运行,程序通过tcp协议远程访问。
1、H2数据库下载地址:http://www.h2database.com/html/download.html
2、解压运行
![](https://img.kancloud.cn/01/fa/01fa0c5bedfabe0cbee84afe2bcb1527_826x240.png)
~~~
h2
|---bin
| |---h2-1.1.116.jar //H2数据库的jar包(驱动也在里面)
| |---h2.bat //Windows控制台启动脚本
| |---h2.sh //Linux控制台启动脚本
| |---h2w.bat //Windows控制台启动脚本(不带黑屏窗口)
|---docs //H2数据库的帮助文档(内有H2数据库的使用手册)
|---service //通过wrapper包装成服务。
|---src //H2数据库的源代码
|---build.bat //windows构建脚本
|---build.sh //linux构建脚本
~~~
3、连接语法
~~~
连接语法:jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName>
范例:jdbc:h2:tcp://localhost/~/testDB
~~~
- 服务组件
- sca-register注册配置中心
- sca-gateway服务网关
- sca-auth认证授权服务
- sca-upms权限管理服务
- sca-quartz定时任务服务
- sca-monitor系统监控服务
- sca-commservie通讯前置服务
- sca-sentinel限流熔断服务
- sca-codegen代码生成服务
- sca-message消息发送服务
- sca-rule规则引擎服务
- sca-workflow工作流引擎服务
- sca-report报表服务
- ELK日志服务
- SkyWalking链路跟踪
- Prometheus监控
- 技术组件
- sca-common-swagger(聚合文档)
- sca-common-log(系统日志)
- sca-common-sentinel(熔断限流)
- sca-common-feign(Feign接口调用)
- sca-common-sequence(分布式发号器)
- sca-common-gray(灰度发布)
- sca-common-security(授权认证)
- sca-common-datasource(动态数据源)
- sca-common-data(数据库及缓存)
- sca-common-oss(文件服务)
- sca-common-xss(XSS安全过滤)
- sca-common-test(微服务单元测试)
- sca-common-test-alone(单体应用单元测试)
- sca-common-memdb(内存数据库)
- 日志脱敏
- Pdf文档转换及预览
- IDE组件
- IDE技术组件介绍
- FastJson技术组件类
- 对象转string技术组件
- JDBC操作技术组件类
- SQL查询(完整SQL)技术组件
- 关闭连接技术组件
- 执行预编译SQL(update)技术组件
- 数据分页查询技术组件
- 数据删除技术组件
- 数据批量插入技术组件
- 数据插入技术组件
- 数据更新技术组件
- 标准数据查询方法(单表)技术组件
- 获取序列号技术组件
- 行数统计技术组件
- 调用存储过程技术组件
- 预编译SQL查询(参数)
- 集合操作技术组件类
- Set和List类型互转技术组件
- 交集技术组件
- 增加元素(批量)技术组件
- 增加元素技术组件
- 差集技术组件
- 并集技术组件
- 替换元素技术组件
- 集合删除(下标)技术组件
- 集合删除(元素)技术组件
- 集合清空技术组件
- 金额处理技术组件类
- 乘技术组件
- 元转换为分技术组件
- 减技术组件
- 删除千分符技术组件
- 加技术组件
- 取金额绝对值技术组件
- 字符串转BigDecimal技术组件
- 是否为0技术组件
- 金额格式化技术组件
- 金额比较技术组件
- 金额舍入技术组件
- 金额转大写技术组件
- 除技术组件
- Redishash操作的组件集合
- 删除字段技术组件
- 字段是否存在技术组件
- 设置字段值(覆盖)技术组件
- 获取字段值技术组件
- 设置字段值(不覆盖)技术组件
- 批量设置字段值技术组件
- 批量获取字段值技术组件
- 获取字段数量技术组件
- 获取字段名称列表技术组件
- 获取字段值列表技术组件
- 获取字段和值列表技术组件
- Redis_Key操作技术组件类
- 获得redisTemplate技术组件
- 重命名key技术组件
- 清空Redis技术组件
- key是否存在技术组件
- 取消过期时间技术组件
- 获取数据结构类型技术组件
- 设置过期时间(毫秒)技术组件
- 设置固定过期时间技术组件
- 剩余存活时间(秒)技术组件
- 删除(批量)技术组件
- 删除(单个)技术组件
- 移动key到指定db技术组件
- 集合排序(正序)技术组件
- Redis_List操作组件操作类
- 插入(尾部)技术组件
- 插入(头部)技术组件
- 列表长度技术组件
- 截取区间列表元素技术组件
- 保留列表元素技术组件
- 获取列表元素(按下标)技术组件
- 设置列表元素(按下标)技术组件
- 删除元素(按值出现次数)技术组件
- 移除并返回元素(头部)技术组件
- 移除并返回元素(尾部)技术组件
- 已有列表插入(尾部)技术组件
- 已有列表插入(头部)技术组件
- 已有列表插入(按位置)技术组件
- 配置中心技术组件类
- 获取Nacos配置内容技术组件
- 通讯前置技术组件类
- 异步应答技术组件
- 组报文(前置)技术组件
- 解报文(前置)技术组件
- 调用第三方交易技术组件
- 调试输出技术组件类
- 输出日志(debug)技术组件
- 输出日志(warn)技术组件
- 输出日志(error)技术组件
- 输出日志(info)技术组件
- 编解码处理技术组件类
- BCD编码技术组件
- BCD解码技术组件
- Base64编码技术组件
- Base64解码技术组件
- 服务调用技术组件类
- 交易调用(分布式)技术组件
- 交易调用(第三方系统)技术组件
- 服务调用(rest服务名)技术组件
- 服务调用(ip-port)技术组件
- 日期时间技术组件类
- 当前时间(date)技术组件
- 当前时间(字符串)技术组件
- 当前时间(毫秒)技术组件
- 日期格式检查技术组件
- 日期比较技术组件
- 日期相加技术组件
- 格式化日期技术组件
- 获取日历字段技术组件
- 计算时间差(Date)技术组件
- 计算时间差(字符串)技术组件
- 转换日期对象技术组件
- 文件操作技术组件类
- MD5计算签名技术组件
- ZIP文件压缩技术组件
- ZIP文件解压缩技术组件
- 写文件内容技术组件
- 创建文件技术组件
- 创建文件目录技术组件
- 文件删除技术组件
- 文件合并技术组件
- 文件大小技术组件
- 文件存在检查技术组件
- 文件拷贝技术组件
- 文件查找技术组件
- 读文件内容技术组件
- 读文件行技术组件
- 数据库操作技术组件类
- 切换数据源技术组件
- 删除(BatchIds)技术组件
- 删除(Entity)技术组件
- 删除(ID)技术组件
- 删除(columnMap)技术组件
- 回滚上一事务技术组件
- 回滚全部事务技术组件
- 开启事务技术组件
- 执行指定方法技术组件
- 提交上一事务技术组件
- 提交全部事务技术组件
- 新增数据技术组件
- 更新(Entity)技术组件
- 更新(ID)技术组件
- 查询(BatchIds)技术组件
- 查询(ID)技术组件
- 查询(Objects)技术组件
- 查询(columnMap)技术组件
- 查询(list)技术组件
- 查询(map)技术组件
- 查询(分页)技术组件
- 查询(单条)技术组件
- 查询(总条数)技术组件
- 清理数据源技术组件
- 数据字典技术组件类
- 平台字典技术组件
- 应用字典技术组件
- 银行字典技术组件
- 平台内置组件技术组件类
- switch选择器技术组件
- 从异步组件中获取数据技术组件
- 初始化线程池技术组件
- 判断异步组件是否已完成技术组件
- 当期线程休眠技术组件
- 获取异常信息到容器技术组件
- 获取环境变量技术组件
- 获取系统变量技术组件
- 表达式判断技术组件
- 设置全局错误技术组件
- 随机正整数技术组件
- 对象操作技术组件类
- map转对象技术组件
- 创建list技术组件
- 创建实体类对象(空对象)技术组件
- 创建实体对象(赋值)技术组件
- 反序列化对象技术组件
- 对象属性赋值技术组件
- 对象序列化成数组技术组件
- 获取对象类型名称技术组件
- 获得对象字段值技术组件
- 获得对象属性及值列表技术组件
- Redis_Set操作技术组件类
- 添加元素技术组件
- 获取所有元素技术组件
- 移除指定元素技术组件
- 随机移除并返回(一个)技术组件
- 随机移除并返回(多个)技术组件
- 集合元素数量技术组件
- 是否包含指定元素技术组件
- 随机返回元素(一个)技术组件
- 随机返回元素(多个)技术组件
- Redis_String操作技术组件类
- 设置值(覆盖)技术组件
- 获取值技术组件
- 获取值(批量)技术组件
- 字符串追加值技术组件
- 设置值(不覆盖)技术组件
- 设置值(带过期时间:秒)技术组件
- 覆盖部分值技术组件
- 截取区间字符串技术组件
- 赋值并返回旧值技术组件
- 值长度技术组件
- Redis_ZSet操作技术组件类
- ZSet添加元素技术组件
- 获取区间集合元素(正序按下标)技术组件
- 获取区间集合元素(倒序按下标)技术组件
- 移除集合元素技术组件
- 增加元素的排序值技术组件
- 获取元素排名(正序)技术组件
- 获取元素排名(倒序)技术组件
- ZSet集合元素数量技术组件
- 获取元素排序值技术组件
- 统计区间元素数量技术组件
- 移除区间元素(按排名)技术组件
- 移除区间元素(按排序值)技术组件
- 容器操作技术组件类
- 取容器深度技术组件
- 容器删除(按value)技术组件
- 容器变量删除(保留keys)技术组件
- 容器变量删除(删除单个key)技术组件
- 容器变量删除(删除多个key)技术组件
- 容器变量赋值技术组件
- 容器变量赋值(批量)技术组件
- 获取容器变量值技术组件
- 容器变量拷贝技术组件
- 容器变量获取(批量)技术组件
- 容器清空技术组件
- 容器多层次赋值技术组件
- Redis计算操作组件类
- 减(整数)技术组件
- 减1技术组件
- 加(整数)技术组件
- 加1技术组件
- 加(浮点数)技术组件
- hash字段加(整数)技术组件
- UUID和ID技术组件类
- 生成UUID技术组件
- 生成ID技术组件
- 批量生成ID技术组件
- 公共方法源码
- 安全组件技术组件类
- 3DES加密技术组件
- 3DES解密技术组件
- DES加密技术组件
- DES解密技术组件
- MD5十进制字符串技术组件
- MD5计算签名技术组件
- 获取CRC16码技术组件
- excel技术组件类
- 获取工作簿技术组件
- 获取工作簿(文件名)技术组件
- 工作簿写文件技术组件
- sheet数技术组件
- sheet行数技术组件
- 工作簿数据行数技术组件
- sheet列表技术组件
- 获取sheet技术组件
- 创建工作簿(xlsx)技术组件
- 创建工作簿(指定格式)技术组件
- 工作簿64编码技术组件
- 文件是否超出限制技术组件
- 文件是否超出限制(文件名)技术组件
- 输出文件地址技术组件
- 新建日期文件夹技术组件
- 截取文件路径技术组件
- 工作簿清理技术组件
- 打开Excel文件技术组件
- 取Excel列数据技术组件
- 取Excel单元格技术组件
- 取Excel行列数技术组件
- 取Excel行数据技术组件
- 公共方法
- 字符串技术组件类
- 字符串切割技术组件
- 字符串去空格技术组件
- 字符串是否包含技术组件
- 字符串截取技术组件
- 统计字符数技术组件
- 统计字节数技术组件
- 以子字符串开始技术组件
- 以子字符串结尾技术组件
- 字符串转大写技术组件
- 字符串转小写技术组件
- 是否包含全角字符技术组件
- 字符串拼接技术组件
- 字符串连接技术组件
- 字符串替换技术组件
- 字符串正则表达式替换技术组件
- 字符串非空技术组件
- 字符串补齐技术组件
- 正则表达式匹配技术组件
- 字符串编码转换技术组件
- 字符串查找定位技术组件
- 变量操作技术组件类
- 字段检查(长度范围)技术组件
- 正则表达式检查技术组件
- 数字检查(大小区间)技术组件
- 变量字段检查(类型、长度)技术组件
- 身份证号校验技术组件
- 身份照15位转18位技术组件
- 上传下载技术组件类
- FTP文件上传技术组件
- FTP文件下载技术组件
- SFTP文件上传技术组件
- SFTP文件下载技术组件
- 自定义组件开发
- IDE技术组件包,技术组件类创建
- 新建、编辑IDE技术组件
- 过时组件介绍
- 技术组件API
- 新建普通java类
- 注册技术组件
- 打包技术组件
- 前端控件