在开发测试过程中,由于种种原因,连接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内存数据库了
知识改变命运,撸码使我快乐,2020继续游走在开源界 点赞再看,养成习惯 给我来个Star吧,点击了解下基于SpringBoot的组件化接口服务落地解决方案 第一时间收到了GitHub推送的...SpringBoot发版邮件,2020.11.13日正式发布了v2.4.0,这是2.4.x分支的第一个版本。...以SpringBoot团队的行事风格,每间隔六个月会发布一个大版本,预计2021年5月份发布 v2.5.0。...版本后缀消失了 从v2.4.0版本开始取消了版本的后缀名.RELEASE,变的更简短了,Maven方式使用如下所示: org.springframework.boot...configtree 的属性 新增启动端点,显示当前应用程序的启动程序,可以帮助排除启动过程中 bean 初始化 耗时问题 嵌入式数据库检查逻辑改进,仅当 H2、Derby 基于内存存储时定义为嵌入数据库
在这个过程中,就需要一个数据库供Flyway操作了。集成测试一般会选择使用内存数据库或者数据库容器来提供一个运行时的数据库实例。...由于H2内存数据库对MySQL数据库的语法的兼容性上还是存在一些问题,在试用之后就放弃了。以下是一个不兼容的案例, ?...虽然这个项目目前尚未被SpringBoot项目作为默认支持的内存数据库,但是它提供了Sping的插件,易用性也越来越好。首先是引入依赖,这里使用mariaDB4j-springboot。...在SpringBoot应用的启动过程中, 内置的内存数据库MariaDB4J会首先启动,然后Flyway完成数据库版本的初始化和系统基础数据的导入。...因此,额外自行注入了一个,见setup()方法中的最后一句。 至此,经过上述系统配置调整和测试准备工作,我们就可以开始着手编写用例了。 ?
环境 Ubuntu Serve 18.04 JDK8 H2数据库 SpringBoot 2.4.0 错误现象 数据库报错数据时,发现插入的时间总是小于当前时间8个小时,在SpringBoot的配置文件中并没有相关时区配置...,h2数据库根据系统时间获取数据,所以初步判断是系统时区设置问题。...先查看当前系统时间 运行tzselect 修改etc文件 查验 -- 查看当前系统时区 date -R -- 执行tzselect tzselect --此时会显示时区,注意:需要输入数字以代表不同的时区
目录 ✍前言 ✍正文 回忆2.3版本的新特性 2.4.0主要新特性 全新的配置文件处理(properties/yaml) 老版本版本配置属性迁移指南 方式一:恢复旧模式(不推荐) 方式二:按新规则迁移(...所以呢,对于Spring Boot 2.4.0之前的版本(老版本)若升级到2.4.0需要做些修改,指导建议如下: 方式一:恢复旧模式(不推荐) 如果你还未准备好做配置迁移的修改,Spring Boot也帮你考虑到了...只不过它是通过显式的在pom里通过exclusion标签来排除的 嵌入式数据库检测 改进嵌入式数据库检测机制:仅当数据库在内存中时才将其视为嵌入式数据库。...所以如果使用H2、HSQL等产品,但是你是基于文件的持久性或使用的是服务器模式,那么将不会检测为内存数据库。而对于非内存数据库,你可能需要额外做如下动作: sa用户名将不会再被主动设置。...(团队版本) H2数据库控制台支持配置密码:可通过spring.h2.console.settings.web-admin-password属性配置通过密码访问H2控制台 增强的错误分析器FailureAnalizers
所以呢,对于Spring Boot 2.4.0之前的版本(老版本)若升级到2.4.0需要做些修改,指导建议如下: 方式一:恢复旧模式(不推荐) 如果你还未准备好做配置迁移的修改,Spring Boot也帮你考虑到了...为了更好的描述好这个非常非常重要的知识点,下篇文章我会用专文来全面介绍 Spring Boot这套全新的配置文件加载机制,并且辅以原理,以及和过去方式的比较,帮助你更全面、更快速、更劳的掌握它,欢迎持续关注...只不过它是通过显式的在pom里通过exclusion标签来排除的 嵌入式数据库检测 改进嵌入式数据库检测机制:仅当数据库在内存中时才将其视为嵌入式数据库。...所以如果使用H2、HSQL等产品,但是你是基于文件的持久性或使用的是服务器模式,那么将不会检测为内存数据库。而对于非内存数据库,你可能需要额外做如下动作: sa用户名将不会再被主动设置。...(团队版本) H2数据库控制台支持配置密码:可通过spring.h2.console.settings.web-admin-password属性配置通过密码访问H2控制台 增强的错误分析器FailureAnalizers
2020年11月12日,Spring官方发布了Spring Boot 2.4.0 GA的公告。在这个版本中增加了大量的新特性和改进,下面我们一起看看在这个重要版本中都有哪些值得关注的内容!...版本命名的更改,从2.4开始,版本名将去除RELEASE后缀,所以这次的版本不是2.4.0.RELEASE,而是2.4.0 2....但是,如果您有更复杂的设置,那么如果您想使用新特性,则可能需要进行一些更改。...这个端点可以帮助您识别比预期启动时间更长的 bean。 5. Docker/Buildpack的支持,可以更方便的构建镜像 6. 完美支持Java 15 7....嵌入式数据库的检测逻辑改进,只有当数据库在内存中时才视为嵌入式数据库。所以,如果当你对 H2、 HSQL 和 Derby 采用文件形式持久化的时候将不会自动初始化 9.
而且springboot的依赖池也收录了H2数据库。接下来我们通过springboot结合Mybatis来对H2数据库进行一些特性的讲解演示。...通过不同的配置我们来演示一下。 5.内嵌模式 内嵌模式,就是把在应用中引入H2,启动应用的同时,会把H2数据服务也启动,应用中既包含了H2数据库的服务端,同时应用又作为客户端来连接H2数据库。...5.1 内存模式连接 内存模式就是数据库文件存在于内存中,没有持久化,当应用进程关闭时数据库与数据表会消失。为了独立环境,我们利用springboot的profile特性来隔离不同模式的环境配置。...springboot项目 通过指定 --spring.profiles.active=inner启动后,输入http://localhost:8080/h2-console,进入H2数据的控制台: ?...同时我们执行maven 工程的测试包也会成功完成Mybatis 单元测试。但是我们关闭应用后数据会丢失因为这些数据存在于内存中。内存是会被回收的。
LayaAir引擎版本号小数点后的第一位代表着大版本,其后是小版本。每一个大版本都代表着,引擎有着阶梯式的前进变化。时隔一个多月,2.4.0大版本的出炉又有着怎样的变化呢。...而2.4.0beta版本开始,3D物理JS版也与wasm版一样,对内存的使用是在设置的初始值基础上,再按实际需求自动增长,更加方便了开发者对于3D物理的内存管理。...beta版本,采用升级的方式来更新到LayaAirIDE 2.4.0,将无法享受到IDE和新建项目时的瘦身好处。...开发者使用了微信小游戏的引擎插件后,当玩家曾体验的任何一款游戏中包括了该插件的相同版本引擎,都无需再次加载,直接调用已加载的微信公共插件库中的引擎版本。这样一来,可让加载效率得到较大的提升。...而LayaAirIDE的2.4.0beta版内置了该引擎插件,并完美的做好了适配工作,除了AS版旧项目需要新增一个编译参数外,其它的都无需开发者手工适配,对于引擎插件的使用,仅需在发布微信小游戏时,勾选使用引擎插件的选项即可
H2 不香么? 为什么使用MariaDB4J ? 谈到在测试中使用内存数据库,估计首先想到的就是H2了。使用时也非常方便,只要在下述SpringBoot的配置文件里修改一下datasource即可。...spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect 然后一个名字为testdb的数据库就就绪了...如果选择继续使用H2,就需要团队为H2去维护另外一套H2专用的schema。因此,使用MySQL的团队需要额外寻找一个H2的替代品,一个更兼容MySQL的内存数据库。...,并提供一个带有MariaDB4jSpringService 作为入参,就可以实现数据库的启动了。...SpringBoot中的配置 在application-test.properties文件中使用如下配置, #Location of db files. delete this directory if
一、背景 单元测试是提高代码质量和保证代码正确性的重要保证。 DAO的单元测试有常见的两种方案。 【1】使用H2这类内存数据库进行单元测试。 【2】使用MySQL数据库,测试后回滚。.../h2database 使用H2内存数据库来单元测试的优势在于 h2更快速,且支持JDBC API。...支持内嵌和服务器模式;是一种内存的数据库 支持浏览器控制台 jar包比较小 另外 如果使用公共的开发数据库,服务器如果回收再测试就需要继续安装建表和插入数据。...个人更倾向于推荐这种内存数据库进行DAO层单测的方式。...大家还可以进入h2的驱动jar包和mybatis的jar中查看源码的逻辑。 通过这些可以学到更多内容。 五、总结 本文主要讲述SpringBoot使用H2内存数据库进行单元测试的案例。
[logo.jpg] 【SpringBoot DB 系列】h2databse 集成示例 demo h2dabase 基于内存的数据库,更常见于嵌入式数据库的使用场景,依赖小,功能齐全;一般来讲,正常的商业项目用到它的场景不多...=org.h2.Driver 上面的配置方式,和我们的 mysql 数据库配置没有什么特别的,这里的 url 请注意一下 jdbc:h2:~/h2-db: 嵌入式使用姿势,会在用户根目录下生成一个名为h2...-db.mv.db的文件(数据库的 schema 和 d column 就存在里面) jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1: 内存模式,应用重启之后数据库会清空,所以在测试用例中...的基本配置,为了更友好的展示,我们开启了 h2dabase 的 web console 控制台 ##h2 web console设置 spring.datasource.platform=h2 #进行该配置后...一灰灰 Blog 尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现 bug 或者有更好的建议,欢迎批评指正,不吝感激 下面一灰灰的个人博客,记录所有学习和工作中的博文,
整体描述 整体项目使用 SpringBoot2.x、MySQL实现。 使用到的插件:hutool、mybatis-plus、liquebase、lombok、h2。...项目主要为展示如何使用 h2 内存数据库进行单元测试的边写,不会对参数进行有效性检测,尽可能简化逻辑!不会对其他插件进行详细讲解。...使用 liquebase 进行数据库结构的管理,使用 mybatis-plus 简化数据库操作。 为了防止单元测试产生很多垃圾数据,使用 h2 内存数据库,测试之后,数据销毁。 2....添加 MyBatisPlus 配置文件,配置 test 环境使用 H2 内存数据库 @Bean public MybatisPlusInterceptor mybatisPlusInterceptor(...操作完可以看到,我们的 MySQL 数据库中并没有产生任何数据。 4.2. 通过手动调用进行测试 启动项目,不指定启动环境(默认环境为 default),通过 postman 进行测试。
http://xjjdog.cn 对200+原创文章进行了细致的分类,阅读更流畅,欢迎收藏。 原创:不羡鸳鸯不羡仙,一行代码调半天。...如果你做的是项目类型的工作,客户半年六个月才升级一次,这些脚本的管理就会乱上加乱。 我们需要把这些数据库变更,使用git这样的工具管理起来,在系统启动的时候,能够自动变更。通过口口相传,太不可信了。...Bar'); 再次执行mvn flyway:migrate,可以发现第二版本的DML信息,已经被写入到数据库。 2. 如何工作? 那flyway是如何做到幂等的呢?...我们发现,数据库中除了用户创建的PERSON表,还多了一个叫做flyway_schema_history的表。 让我们see一see里面的内容。...SpringBoot项目集成 在pom中加入flyway的坐标。可以看到我们是没有提供版本号的,说明它已经在bom文件中定义过了。
前端基于 h5ai 的原有功能使用 Vue 重新开发了一遍. 后端采用 SpringBoot, 数据库采用内嵌数据库....预览地址: http://zfile.jun6.net 系统特色 内存缓存 (免安装) 内存数据库 (免安装) 个性化配置 自定义目录的 header 和 footer 说明文件 文件夹密码 支持在线浏览文本文件.../urandom 是为了防止在 Linux 环境中, 生成首次登陆生成 sessionId 取系统随机数过慢的问题....: h2/mysql 常见问题 数据库 缓存默认支持 h2 和 mysql, 前者为嵌入式数据库, 无需安装, 但后者相对性能更好....后台支持上传、编辑、删除等操作 API 支持 更方便的部署方式
模式、存储与兼容 H2 支持嵌入、服务器、混合的运行模式,以及在内存或持久性的数据存储方式,还有兼容各类数据库 2.1 模式 嵌入模式:应用程序和数据库在同一个 JVM 中,这是最快和最简单的连接模式。...第一个连接数据库的应用程序以嵌入式模式运行,其他应用程序可同时访问相同的数据 2.2 存储 内存存储:意味着数据存储于内存之中,当关闭最后一个连接的时候内容即丢失,但可添加参数 DB_CLOSE_DELAY...,但仍有一些差异(MySQL 文本默认不区分大小写,而 H2 是区分大小写的),H2 可模拟特定数据库的行为,但这种模仿是有限的,普通情况下可正常使用(下面举例 MySQL) 兼容 MySQL : 在数据库...-- springboot 依赖也收录的 H2,可不写version --> com.h2database <artifactId.../持久化到本项目根目录 # mem:test 存放到内存中 url: jdbc:h2:.
在Spring Boot使用H2内存数据库 在之前的文章中我们有提到在Spring Boot中使用H2内存数据库方便开发和测试。本文我们将会提供一些更加具体有用的信息来方便我们使用H2数据库。...,如果我们想永久保存内存数据库需要添加如下配置: spring.datasource.url=jdbc:h2:file:/data/demo 这里配置的是数据库的文件存储地址。...访问H2数据库 虽然是一个内存数据库,我们也可以在外部访问和管理H2,H2提供了一个内嵌的GUI管理程序,我们看下怎么使用。...记得填入你在配置文件中配置的地址和密码。 登录之后,我们可以看到如下的管理界面: ?...本文的例子可以参考https://github.com/ddean2009/learn-springboot2/tree/master/springboot-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:....false jpa: database-platform: org.hibernate.dialect.H2Dialect 访问控制台 命令行执行 java -jar h2-1.4.200.jar 执行后将自动打开浏览器到控制台页面...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
h2dabase 基于内存的数据库,更常见于嵌入式数据库的使用场景,依赖小,功能齐全;一般来讲,正常的商业项目用到它的场景不多,但是在一些特殊的 case 中,还是比较有用的,比如用于单元测试,业务缓存...项目创建 本文对应的示例 demo,采用SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA进行开发 1. pom 配置 关于如何创建一个 springboot 项目本文就不介绍了...=org.h2.Driver 上面的配置方式,和我们的 mysql 数据库配置没有什么特别的,这里的 url 请注意一下 jdbc:h2:~/h2-db: 嵌入式使用姿势,会在用户根目录下生成一个名为h2...-db.mv.db的文件(数据库的 schema 和 d column 就存在里面) jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1: 内存模式,应用重启之后数据库会清空,所以在测试用例中...的基本配置,为了更友好的展示,我们开启了 h2dabase 的 web console 控制台 ##h2 web console设置 spring.datasource.platform=h2 #进行该配置后
有什么特性 由于是Java写的,自带跨平台能力 小,非常的小,完整的 Jar 包只有1-2M 支持多种模式,包括内存形态、文件形态(持久化) 一般来说,使用H2 的场景大概会是: 计算资源受限,如嵌入式计算环境中...自动化测试,在自动化环境中可能需要大量模拟接口,包括数据存储接口,此时内存数据库是不二之选。...执行SpringBoot 启动程序,发现目录中生成了h2.mv.db文件,说明写入成功! 二、H2 用于单元测试 H2 数据库的典型应用是 在Web项目中做单元测试。...一般,测试的流程为: 数据初始化 执行测试 销毁数据 在真实的测试代码开发中,有几类问题会造成困扰: 数据库环境的搭建比较费时费力; 数据库的数据难以保持"干净",一些垃圾数据容易影响测试的成功率 H2...与H2 类似的数据库还有HSQL、Derby,有兴趣的朋友可以研究对比下。 欢迎继续关注"美码师的补习系列-springboot篇" ,期待更多精彩内容^-^
领取专属 10元无门槛券
手把手带您无忧上云