首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

H2 数据库

模式、存储与兼容 H2 支持嵌入、服务器、混合运行模式,以及在内存或持久性数据存储方式,还有兼容各类数据库 2.1 模式 嵌入模式:应用程序和数据库同一个 JVM ,这是最快和最简单连接模式。...缺点是一个数据库在任何时候都只能在一个虚拟机(和类加载器)打开 服务器模式:可理解为 C/S 模式,通过 TCP/IP 打开数据库,服务器模式比嵌入式模式慢。...,但仍有一些差异(MySQL 文本默认不区分大小写,而 H2 是区分大小写),H2 可模拟特定数据库行为,但这种模仿是有限,普通情况下可正常使用(下面举例 MySQL) 兼容 MySQL : 在数据库...-- 高版本不会自动创建库,连接前手动执行脚本 --> <!.../持久化到本项目根目录 # mem:test 存放到内存 url: jdbc:h2:.

1.1K30

Spring Boot 和 Hibernate H2 数据库配置来进行启动测试

希望 Spring Boot 配置 H2 数据库来进行功能测试。 如何进行配置能来让启动时候自动载入数据和进行测试?...spring.h2.console.enabled Spring Boot 后启用控制台,用户可以通过 Web 界面来访问 H2 控制台。...spring.h2.console.path 网页界面通过 URL 可以访问控制台地址,这个地址可以自由和任意修改。...spring.datasource.url Spring 项目中数据源连接参数,在这个参数你定义了一个数据库名称为 scodb,通过网页界面进行访问时候,会提醒你输入连接参数。...spring.datasource.schema Spring 启动时候需要载入 sql 文件。这个文件将会在 Spring 启动后被执行,创建数据库和插入测试数据等。

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

SpringBoot使用H2内存数据库单元测试代码示例

支持内嵌和服务器模式;是一种内存数据库 支持浏览器控制台 jar包比较小 另外 如果使用公共开发数据库,服务器如果回收再测试就需要继续安装建和插入数据。...2.2 使用MySQL测试后回滚 使用MySQL测试后回滚是常见一种方式,最大问题如果是自己本地测试,其他人如果想测试需要再创建和插入数据,非常麻烦。...三、编码 首先看项目结构 本示例非常简单,提供了一个UserInfo实体,建表语句放在schema.sql,data.sql插入几条记录。...4.2 源码 可以通过配置文件 点击数据源配置下面几项,可以跳转到spring-boot-autoconfigure.jar查看参数对应自动配置类。...大家还可以进入h2驱动jar包和mybatisjar查看源码逻辑。 通过这些可以学到更多内容。 五、总结 本文主要讲述SpringBoot使用H2内存数据库进行单元测试案例。

3K30

springboot整合H2(内置一个月对JPA学习)

查询语言 这是持久化操作很重要一个方面,通过面向对象而非面向数据库查询语言查询数据,避免程序SQL语句紧密耦合 使用H2工程 因为我们使用JPA和H2,所以我们需要同时添加这两个依赖,同时为了偷懒...*********** #创建MySql语句位置 spring.datasource.schema=classpath:schema.sql #插入数据MySql语句位置 spring.datasource.data...#创建MySql语句位置 spring.datasource.schema=classpath:schema.sql #插入数据MySql语句位置 spring.datasource.data...控制台,发现一个有意思现象,两边创建了 说明jpa也会自动建扫描到@Entity)时候 测试接口 目前没有数据,我们控制台添加几条 ---- 重新测试接口 新增操作 /**...我们生成了三张 默认中间命名是一对多中一名_一对多名 使用@JoinColumn(name = "user_id")指定关联字段 避免中间产生 注意点 @JoinColumn如果不加

3.5K10

测试中使用内存数据库

初始化数据库和导入数据一文,我们探索了Spring Boot项目中如何创建数据库结构,以及如何往数据库填充初始数据。...程序开发过程中常常会在环境配置上浪费很多时间,例如在一个存在数据库组件应用程序,测试用例运行之前必须保证数据库结构正确,并且已经填入初始数据。...对于良好测试用例,还需要保证数据库执行用例前后状态不改变。 之前应用基础上,schema.sql文件包含创建数据库结构SQL语句、data.sql文件包含填充初始数据SQL语句。...分析 我们通过SpringResourceDatabasePopulator和DatabasePopulatorUtils类加载test-data.sql文件,test-data.sql文件数据仅仅对当前所在...loadDataFixtures()方法,首先通过context.getResources方法加载test-data.sql文件,然后通过DatabasePopulatorUtils.execute

1.5K20

SpringBootH2内存数据库使用

开发测试过程,由于种种原因,连接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内存数据库了

1.3K30

初始化数据库和导入数据

通过schema.sql文件定义数据库结构、通过data.sql导入测试数据。...现在可以将import.sql重命名为data.sql,然后再创建文件schema.sql删除数据时,需要考虑依赖关系,例如表A依赖B,则先删除B。...在这个方案我们主要使用以下配置项: spring.jpa.hibernate.ddl-auto=create-drop配置项告诉Hibernate通过@Entity模型定义自动推断数据库定义并创建合适...程序启动时,经由Hibernate计算出schema会用来创建结构,程序结束时这些也被删除。...schema.sql文件包含创建数据库结构SQL语句,应用程序启动过程,需要创建数据库结构时,执行该文件DDL语句。

1.7K40

Spring实战——Profile

通过Profile配置,Spring可以根据环境在运行阶段来决定bean创建与否,先举例如下,主要从Profile bean配置和激活来展开。...Profile bean配置 通过注解@Profile配置   对于上面比方中第一种情况,开发环境我们配置一个数据源可能是这样 @Bean(destroyMethod = "shutdown...,模式定义类文件下schema.sql文件   schema.sql create table Things ( id identity, name varchar(100) );   这里定义了一张...xml配置文件配置   除了简单注解方式,我们哈可以通过xml配置文件声明方式,具体配置如下   datasource-config.xml <?...当然,如果两者都没有设置的话,则只会创建那些定义相应profilebean。

1.1K60

使用 Spring for GraphQL 构建 GraphQL API 步骤

Team :管理用户所属团队。创建空白项目首先,使用 Spring Initializr 创建一个空白项目并创建所需包和目录。...--- H2 数据库初始化脚本 │ │ └ data.sql --- H2 数据库数据初始化脚本 │ │ │ └ test --- 用于测试(本例未使用) └ pom.xml实现准备直接实现...准备工作1:定义和数据库连接定义设置因为单独设置每个 DBMS 太麻烦了,所以将使用 H2DB。为了应用启动时将和数据自动导入到 H2DB,将以下内容保存在 schema.sql 。...步骤1:定义 GraphQL 模式 resources/graphql/ 创建一个名为 graphql-schema.graphqls 文件,并定义 GraphQL 模式和查询。...实现与每个对应 Repository 接口,并将其存储 repository 包。(由于这次是简单结构,按分别实现接口。)

21910

微服务架构之Spring Boot(四十四)

例如,要创建和删除,可以将以下行添加到 application.properties : spring.jpa.hibernate.ddl-auto=create-drop Hibernate自己内部属性名称...如果您不想要此行为,则应在 application.properties 将 spring.jpa.open-in-view 设置为 false 。...30.5使用H2Web控制台H2数据库提供了一个 基于浏览器控制台是Spring Boot可以自动为您配置。满足以下条件时,将自动配置控制台: 您正在开发基于servletWeb应用程序。...com.h2database:h2 类路径上。 您正在使用Spring Boot开发人员工具。...30.5.1更改H2控制台路径 默认情况下,控制台位于 /h2-console 。您可以使用 spring.h2.console.path 属性自定义控制台路径。

1.3K20

MySQL内存数据库新选择-MariaDB4J

H2 不香么? 为什么使用MariaDB4J ? 谈到测试中使用内存数据库,估计首先想到就是H2了。使用时也非常方便,只要在下述SpringBoot配置文件里修改一下datasource即可。...如果要导入数据库和基础数据的话,也只要在src/test/resouces下面提供如下两个文件 schema.sql创建schema和 data.sql – 导入基础数据 看上去是不是很方便呢...不过随着项目中使用深入,就发现了一些问题语法上兼容性(如注释)以及产品功能上问题(如多层临时),具体可以关注笔者之前整理一个list。...如果选择继续使用H2,就需要团队为H2去维护另外一套H2专用schema。因此,使用MySQL团队需要额外寻找一个H2替代品,一个更兼容MySQL内存数据库。...SpringBoot配置 application-test.properties文件中使用如下配置, #Location of db files. delete this directory if

3.9K20

聊聊单元测试

1. dao层单元测试 最开始写单测时候,要连着DEV数据库,这时候会有两个烦恼:网络有问题时候单测运行不通过、数据库里造成脏数据时候会导致应用程序异常。...有如下几个步骤: resources下新建目录h2,存放schema.sql和data-prepare-user.sql文件,前者用于保存建表语句,后者用于准备初始数据 test-data-source.xml...="classpath:h2/schema.sql" encoding="UTF-8"/> <jdbc:script location="classpath:<em>h2</em>/data-prepare...*:这个类里<em>的</em>方法可以用于指定Mock组件<em>的</em>预期<em>行为</em>,包括异常处理。...三、总结 单元测试<em>的</em>三个步骤 准备数据、<em>行为</em> 测试目标模块 验证测试结果 除了本文中提到<em>的</em>Junit、Mockito、<em>H2</em>,还有很多其他<em>的</em>单元测试框架,例如TestNG、spock等。

1.4K10
领券