什么是内存数据库?...内存数据库,就是不需要去安装类似于mysql、oracle等这些数据库,而是通过程序运行的时候将sql执行将数据读取到内存中,程序结束后从内存中移除,减少因为安装sql或者一系类配置。...内存数据库可以解决什么问题? 没有测试环境,测试数据不能直接干扰真实线上数据; 环境原因,导致连接的时候慢、卡顿、超时等问题,本地装库又繁琐; 有哪些内存数据库?...derby/ sqlite 参考:https://www.sqlite.org/index.html https://www.runoob.com/sqlite/sqlite-tutorial.html 内存数据库这么多...、慢、卡顿或者杂七杂八的一些原因,导致自测或者说自搭本地库非常繁琐,而通过这种h2或者FlyWay可以直接解决本地开发的问题,并且通过单元测试后可以直接将结果展示出来,验证程序的正确性,当然这种内存数据库有一定的弊端
在Spring Boot使用H2内存数据库 在之前的文章中我们有提到在Spring Boot中使用H2内存数据库方便开发和测试。本文我们将会提供一些更加具体有用的信息来方便我们使用H2数据库。... runtime 数据库配置 有了上面的依赖,默认情况下Spring Boot会为我们自动创建内存H2数据库...spring.datasource.password=password spring.jpa.database-platform=org.hibernate.dialect.H2Dialect 默认情况下内存数据库会在程序结束之后被销毁...,如果我们想永久保存内存数据库需要添加如下配置: spring.datasource.url=jdbc:h2:file:/data/demo 这里配置的是数据库的文件存储地址。...访问H2数据库 虽然是一个内存数据库,我们也可以在外部访问和管理H2,H2提供了一个内嵌的GUI管理程序,我们看下怎么使用。
每个数据库为了使用者的查询简便性以及使用效率,都有专门提供一些函数给使用者进行使用,H2也同样如此,虽然没有oracle那么多强大的函数,但是一般需求的使用还是能够满足,下面就简单介绍下都有哪些函数 一...10000 以内的值都被保存在内存中。聚合函数只能在SELECT语句中使用。...例子如下:CALL DATABASE(); DATABASE_PATH() 返回数据库文件路径和数据库名,如果不是基于文件的数据库,返回NULL。...例子如下:CALL LINK_SCHEMA(‘TEST2‘, ‘‘, ‘jdbc:h2:test2‘, ‘sa‘, ‘sa‘, ‘PUBLIC‘); MEMORY_FREE() 返回空闲内存,单位为...这个值在数据库重启后也是唯一的值(值不会被重新使用)。
在开发测试过程中,由于种种原因,连接Mysql或者Oracle进行测试可能会产生很多问题,比如网络原因,线上数据库冲突以及性能等问题,这时候如果能将数据库跑在内存中,会省很多问题 下面记录一份H2内存数据库的使用方法...scope为test范围 com.h2database h2...配置数据源 spring: datasource: ## 这里和引入mysql驱动没什么区别 driver-class-name: org.h2.Driver url: jdbc:h2...:mem:test ## 由于数据库会跑在内存中,所以程序需要在启动的时候在内存中创建数据库,这里指定数据库的表结构(schema)和数据信息 (data),语法和mysql大同小异 schema...: classpath:db/schema.sql data: classpath:db/data.sql 经过上面两步的配置,就可以直接在程序中无感知(和使用Mysql时候一样)使用H2内存数据库了
介绍 H2是Java编写的一款内嵌式数据库,支持内存和文件两种方式存储数据。...SpringBoot整合 pom.xml org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime...application.yml spring: datasource: # url: jdbc:h2:mem:testdb url: jdbc:h2:file:..../src/main/resources/data.sql driver-class-name: org.h2.Driver username: sa password: password h2: # web
H2 H2 是标准 SQL 的关系型数据库,由 java 编写,整个 H2 是一个 jar 包(大约 2.5MB),其开源且使用 JDBC API 进行调用。...其主要特性如下: 非常快,开源,JDBC API 嵌入式和服务器模式;可基于内存的数据库 事务支持,多版本并发,全文搜索,可加密数据库 基于浏览器的控制台应用程序 占用空间小:大约 2.5 MB jar...模式、存储与兼容 H2 支持嵌入、服务器、混合的运行模式,以及在内存或持久性的数据存储方式,还有兼容各类数据库 2.1 模式 嵌入模式:应用程序和数据库在同一个 JVM 中,这是最快和最简单的连接模式。...第一个连接数据库的应用程序以嵌入式模式运行,其他应用程序可同时访问相同的数据 2.2 存储 内存存储:意味着数据存储于内存之中,当关闭最后一个连接的时候内容即丢失,但可添加参数 DB_CLOSE_DELAY.../持久化到本项目根目录 # mem:test 存放到内存中 url: jdbc:h2:.
最近做演示项目的时候需要一个数据库,但不想安装。...于是查看了embedded datasource : h2 h2: 依赖: com.h2database h2 h2: 驱动名称: org.h2.Driver h2: jdbc url: 内存模式: jdbc:h2:mem:test embedded:...jdbc:h2:file:..../db/springboot 最关键的是,file要指定绝对路径,即不能jdbc:h2:file:db/springboot这样说报错,说没指定具体位置。
h2dhArchive Downloads 1 h2数据库的下载地址 2....H2软件包目录结构 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. windows下启动软件 我们可以进入到h2的bin
启动和使用H2控制台 H2控制台应用程序允许您使用浏览器访问数据库。这可以是H2数据库,也可以是支持JDBC API的其他数据库。...由于数据库对象驻留在服务器上,因此并发工作量受服务器应用程序可用内存的限制。 登录 在登录页面,您需要提供连接信息以连接到数据库。设置数据库的JDBC驱动程序类,JDBC URL,用户名和密码。...@memory; 显示已用和可用内存。这会打电话System.gc()。 @meta select 1; 列出ResultSetMetaData运行查询后。...例:1=Generic H2 (Embedded)|org.h2.Driver|jdbc\:h2\:~/test|sa 使用JDBC连接到数据库 要连接到数据库,Java应用程序首先需要加载数据库驱动程序...数据库文件加密。 读取和写入CSV文件(此功能也可以在数据库外部使用)。 参照完整性和检查约束。 更好的数据类型和SQL支持。 内存数据库,只读数据库,链接表。
本指南将帮助您了解内存数据库的概念。我们将看一下简单的JPA示例,以了解在内存数据库中使用的最佳实践。 什么是内存数据库? 为什么使用内存数据库? 使用内存数据库的最佳做法是什么?...如何将Spring Boot项目连接到H2? 什么是内存数据库? 典型的数据库涉及大量的设置。...在这种情况下,内存数据库提供了理想的解决方案。 应用程序启动时会创建内存数据库,并在应用程序停止时销毁。...好处 零项目设置或基础设施 零配置 零维护 易于学习,POC和单元测试 Spring Boot提供了简单配置,可以在真实数据库和内存数据库(如H2)之间切换 H2 H2是内存数据库中的流行之一。...H2和Spring Boot组合如何工作? 首先也是最重要的事情 - Spring Boot很聪明。 如果您正在与内存数据库进行通信,则默认情况下,它会查看实体并创建数据库和表。
介绍 内存数据库(Embedded database或in-momery database)具有配置简单、启动速度快、尤其是其可测试性等优点,使其成为开发过程中非常有用的轻量级数据库。...在spring中支持HSQL、H2和Derby三种数据库。 ? 总的感觉H2很厉害的样子,既然是这样的话,我们先介绍H2的使用,然后在介绍HSQLDB的使用。...(4)编写测试类; 以上可以说都是准备工作,到这里才是到了本节核心的地方,在具体提供源代码之前,先说一下具体的一个思路:我们这里要使用repository保存数据到h2数据库,我们需要提供一个实体类DemoInfo...127.0.0.1:8080/findAll 会看到save进入的数据; 重新启动App.java,再访问: http://127.0.0.1:8080/findAll 此时没有数据,说明了数据只保存在内存中...(7)实现h2数据库本地化; 我们会发现程序一重新启动,数据就都不见了,有些时候,我们还是希望数据能一直存在的,那么问题就是h2如何实现本地化呢?
h2数据库进入shell java -cp ...../lib/h2-1.4.200.jar org.h2.tools.Shell Welcome to H2 Shell 1.4.200 (2019-10-14) Exit with Ctrl+C [Enter...] jdbc:h2:~/test URL jdbc:h2:/usr/local/db/xxx-xxx [Enter] org.h2.Driver Driver [Enter]
——《宿命》 在apache-shenyu中也默认用h2数据库作为默认数据库,方便开发、演示、学习、轻量化部署等 但是我们知道h2数据库是基于内存的嵌入式数据库,如何让其在运行动态执行sql呢?...console进行: h2-console | 阿超 今天我们换一种方式,直接使用客户端工具连接,默认的url肯定是连不上的: spring: datasource: url: jdbc:h2...DB_CLOSE_DELAY=-1;MODE=MySQL; username: sa password: sa driver-class-name: org.h2.Driver 因为这里是h2...:mem:路径,即便换成file也是不允许两个连接的 我们换成tcp连接,再指定一下目录 spring: datasource: url: jdbc:h2:tcp://localhost/$...server started and connection is open."); System.out.println("URL: jdbc:h2:" + server.getURL
一、H2数据库简介 1、H2数据库是一个开源的关系型数据库。...web的数据库管理界面 二、在Java中操作H2数据库 1、以嵌入式(本地)连接方式连接H2数据库 这种连接方式默认情况下只允许有一个客户端连接到H2数据库,有客户端连接到H2数据库之后, 此时数据库文件就会被锁定...E:/H2/gacl(Windows only) 2、使用TCP/IP的服务器模式(远程连接)方式连接H2数据库(推荐) 这种连接方式就和其他数据库类似了,是基于Service的形式进行连接的,因此允许多个客户端同...时连接到H2数据库 连接语法:jdbc:h2:tcp://[:]/[] 范例:jdbc:h2:tcp://localhost/~/test 3、H2数据库的内存模式 (1)、H2数据库被称为内存数据库...,因为它支持在内存中创建数据库和表 (2)、注意:如果使用H2数据库的内存模式,那么我们创建的数据库和表都只是保存在内存中, 一旦服务器重启,那么内存中的数据库和表就不存在了。
2、H2的产品优势: 纯Java编写,不受平台的限制; 只有一个jar文件,适合作为嵌入式数据库使用; h2提供了一个十分方便的web控制台用于操作和管理数据库内容; 功能完整,...(二)连接方式 1、以嵌入式(本地)连接方式连接H2数据库 这种连接方式默认情况下只允许有一个客户端连接到H2数据库,有客户端连接到H2数据库之后,此时数据库文件就会被锁定,那么其他客户端就无法再连接了...) 这种连接方式就和其他数据库类似了,是基于Service的形式进行连接的,因此允许多个客户端同时连接到H2数据库。 ...H2数据库的内存模式 (1)、H2数据库被称为内存数据库,因为它支持在内存中创建数据库和表。 ...(2)、注意:如果使用H2数据库的内存模式,那么我们创建的数据库和表都只是保存在内存中,一旦服务器重启,那么内存中的数据库和表就不存在了。 四、实例 1、使用Maven项目的依赖。
【1】使用H2这类内存数据库进行单元测试。 【2】使用MySQL数据库,测试后回滚。 两种方案各有利弊,个人倾向于前者。...2.1 使用H2这类内存数据库进行单元测试 官网地址:http://www.h2database.com/html/main.html github地址:https://github.com/h2database.../h2database 使用H2内存数据库来单元测试的优势在于 h2更快速,且支持JDBC API。...个人更倾向于推荐这种内存数据库进行DAO层单测的方式。...大家还可以进入h2的驱动jar包和mybatis的jar中查看源码的逻辑。 通过这些可以学到更多内容。 五、总结 本文主要讲述SpringBoot使用H2内存数据库进行单元测试的案例。
JAVA 项目中使用 H2 数据库 发布时间:2018-06-08 15:43, 浏览次数:823 , 标签: JAVA 为什么要使用H2数据库 H2数据库是可以嵌入到JAVA项目中的,因为只需要导入一个.../test 上面jdbc:h2:tcp://localhost/~/test中的test是数据库的名字,H2默认如果数据库不存在的话,会自动创建一个数据库的。...H2 控制台 关于H2 数据库的连接方式 连接H2数据库有以下方式 * 服务式 (Server) * 嵌入式(Embedded) * 内存(Memory) 还没太仔细研究,到目前的理解: 嵌入式的话,就是这个...内存方式,顾名思义,数据仅保持在内存中 嵌入式和服务式主要体现在JDBC连接的URL方式不同,上面例子中给的是服务式的。...* 服务式 (Server) jdbc:h2:tcp://localhost/~/test * 嵌入式(Embedded) jdbc:h2:~/test * 内存式(Memory) jdbc:h2:tcp
第三个用途是作为缓存,即当做内存数据库,作为NoSQL的一个补充。...点击帮助,会提示一些关于 H2 数据库使用的帮助信息。...缺点是数据库可能只在任何时候在一个虚拟机(和类加载器)中打开。与所有模式一样,支持持久性和内存数据库。对并发打开数据库的数量或打开连接的数量没有限制。...与所有模式一样,支持持久性和内存数据库。对每个服务器并发打开的数据库数量或打开连接的数量没有限制。 5.3 混合模式 混合模式是嵌入式和服务器模式的结合。...可参考如下博客文章学习 Java 连接 H2: Java嵌入式数据库H2学习总结(一)——H2数据库入门 Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库 Java嵌入式数据库
可用于单元测试 可以用作缓存,即当做内存数据库 H2的产品优势: 纯Java编写,不受平台的限制; 只有一个jar文件,适合作为嵌入式数据库使用; h2提供了一个十分方便的web控制台用于操作和管理数据库内容...连接语法:jdbc:h2:tcp://[:]/[] 范例:jdbc:h2:tcp://localhost/~/test H2数据库的内存模式...连接语法:jdbc:h2:mem: H2数据库被称为内存数据库,因为它支持在内存中创建数据库和表。...注意:如果使用H2数据库的内存模式,那么我们创建的数据库和表都只是保存在内存中,一旦服务器重启,那么内存中的数据库和表就不存在了。...其他 转换MYSQL建表语句转换H2建表语句工具 h2内存数据库和mysql数据库的区别 H2 数据库安装使用教程 浅析h2数据库存储引擎-mvStore 能够可视化访问和查看H2数据库的工具 版权声明
h2数据库十分适合作为嵌入式数据库使用,其它的数据库大部分都需要安装独立的客户端和服务器端。...所谓嵌入式数据库,就是直接在项目中引入h2的jar包,通过java代码启动h2的服务,项目即可使用h2的数据库功能,而不需要额外的安装h2服务器很方便,以下是引入h2相关的配置 maven配置 com.h2database h2 ...jdbc:h2:~/.h2/shrlace;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUEselect 1 H2
领取专属 10元无门槛券
手把手带您无忧上云