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

为什么通过H2进行spring-boot测试,而它却将数据写入我本地的mysql数据库?

通过H2进行Spring Boot测试时,它将数据写入本地的MySQL数据库的原因是因为在Spring Boot中,默认的数据源配置是使用嵌入式的H2数据库。当我们进行测试时,Spring Boot会自动创建一个内存中的H2数据库实例,并将数据写入其中。

这种默认行为的好处是测试环境的搭建变得非常简单,无需手动配置和安装MySQL数据库。同时,H2数据库的性能也比较好,适合用于测试场景。

然而,如果你希望将测试数据写入到MySQL数据库中,你可以进行以下配置:

  1. application.propertiesapplication.yml文件中,配置MySQL数据库的连接信息,包括URL、用户名和密码。
  2. 在测试类中,使用@TestPropertySource注解指定使用的配置文件,例如:@TestPropertySource(locations = "classpath:test.properties")
  3. test.properties文件中,指定使用MySQL数据库的配置,例如:spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver

通过以上配置,你就可以将测试数据写入到MySQL数据库中了。

需要注意的是,为了保证测试的独立性和可重复性,通常建议使用嵌入式的H2数据库进行测试。这样可以避免测试数据对实际环境产生影响,并且测试执行速度也会更快。只有在特定需求下,才需要将测试数据写入到实际的MySQL数据库中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Boot 面试题

启动器是一套方便依赖没描述符,它可以放在自己程序中。你可以一站式获取你所需要 Spring 和相关技术,不需要依赖描述符通过示例代码搜索和复制黏贴负载。...在测试时候,发现了 LiveReload 漏洞,如果你测试时也发现了,请一定要告诉我们。 问题十一 什么是嵌入式服务器?...>mysql-connector-java 第二步 - 从 pom.xml 中移除 H2 依赖项 或者至少把作为测试范围。...问题三十 Spring Boot 配置默认 H2 数据库名字是上面?为什么默认数据库名字是 testdb?...如果你使用了 H2 内部存储数据库里面确定了 Spring Boot 用来安装你 H2 数据库名字。 问题三十一 如果 H2 不在类路径里面,会出现上面情况?

1.3K10

Spring Boot+Mybatis+Redis二级缓存开发指南

为了测试我们代码,我们编写了单元测试,并且用H2内存数据库来生成我们测试数据通过该项目,我们希望读者可以快速掌握现代化Java Web开发技巧以及最佳实践。...测试 配置H2内存数据库 至此我们已经完成了所有代码开发,接下来我们需要书写单元测试代码来测试我们代码质量。我们刚才开发过程中采用mysql数据库一般我们在测试时经常采用是内存数据库。...这里我们使用H2作为我们测试场景中使用数据库。 要使用H2也很简单,只需要跟使用mysql时配置一下即可。...然后只要在我们测试类中加上 @ActiveProfiles(profiles = "test") 注解来启用test环境下配置,这样就能一键从mysql数据库切换到h2数据库。...这样当我们测试时,h2就会读取这两个文件,初始化我们所需要表结构以及数据,然后在测试结束时销毁,不会对我们mysql数据库产生任何影响。这就是内存数据库好处。

1.7K100

面试必问40个SpringBoot面试题!需要拿走SpringBoot面试题【建议收藏】

** **31、使用 Spring Boot 启动连接到内存数据库 H2 JPA 应用程序需要哪些依赖项?** **32、如何不通过任何配置来选择 Hibernate 作为 JPA 默认实现?...它还提供H2数据库控制台以更好地测试应用程序。...后来(知道 - 小于百分之一几率),我们可以使用另一种 JPA 实现。 31、使用 Spring Boot 启动连接到内存数据库 H2 JPA 应用程序需要哪些依赖项?...在问题“如何连接一个外部数据库?”中,我们解释了如何连接一个你所选择数据库。 32、如何不通过任何配置来选择 Hibernate 作为 JPA 默认实现?...让我们以 MySQL 为例来思考这个问题: 第一步 - 把 mysql 连接器依赖项添加至 pom.xml 第二步 - 从 pom.xml 中移除 H2 依赖项 或者至少把作为测试范围。

6.3K31

Spring Boot + Mybatis + Redis二级缓存开发指南

为了测试我们代码,我们编写了单元测试,并且用H2内存数据库来生成我们测试数据通过该项目,我们希望读者可以快速掌握现代化Java Web开发技巧以及最佳实践。...测试 配置H2内存数据库 至此我们已经完成了所有代码开发,接下来我们需要书写单元测试代码来测试我们代码质量。我们刚才开发过程中采用mysql数据库一般我们在测试时经常采用是内存数据库。...这里我们使用H2作为我们测试场景中使用数据库。 要使用H2也很简单,只需要跟使用mysql时配置一下即可。在application.yml文件中: ?...然后只要在我们测试类中加上@ActiveProfiles(profiles = "test")注解来启用test环境下配置,这样就能一键从mysql数据库切换到h2数据库。...这样当我们测试时,h2就会读取这两个文件,初始化我们所需要表结构以及数据,然后在测试结束时销毁,不会对我们mysql数据库产生任何影响。这就是内存数据库好处。

1.2K30

精选Spring Boot 面试题,帮你整理好了!

它还提供H2数据库控制台以更好地测试应用程序。...在测试时候,发现了 LiveReload 漏洞,如果你测试时也发现了,请一定要告诉我们。 13 Spring Boot中监视器是什么?...后来(知道 - 小于百分之一几率),我们可以使用另一种 JPA 实现。 31 使用 Spring Boot 启动连接到内存数据库 H2 JPA 应用程序需要哪些依赖项?...让我们以 MySQL 为例来思考这个问题: 第一步 - 把 mysql 连接器依赖项添加至 pom.xml ? 第二步 - 从 pom.xml 中移除 H2 依赖项 或者至少把作为测试范围。...第三步 - 安装你 MySQL 数据库 更多来看看这里 -https://github.com/in28minutes/jpa-with-hibernate#installing-and-setting-up-mysql

3.4K30

Spring Boot 面试题精华

启动器是一套方便依赖没描述符,它可以放在自己程序中。你可以一站式获取你所需要 Spring 和相关技术,不需要依赖描述符通过示例代码搜索和复制黏贴负载。...在测试时候,发现了 LiveReload 漏洞,如果你测试时也发现了,请一定要告诉我们。 问题十 什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?...在问题“如何连接一个外部数据库?”中,我们解释了如何连接一个你所选择数据库。 问题二十六 如何不通过任何配置来选择 Hibernate 作为 JPA 默认实现?...让我们以 MySQL 为例来思考这个问题: 问题二十九 Spring Boot 配置默认 H2 数据库名字是上面?为什么默认数 据库名字是 testdb?...如果你使用了 H2 内部存储数据库里面确定了 Spring Boot 用来安装你 H2 数据库名字。 问题三十 如果 H2 不在类路径里面,会出现上面情况?

16.2K40

Java Web现代化开发:Spring Boot + Mybatis + Redis二级缓存

为了测试我们代码,我们编写了单元测试,并且用H2内存数据库来生成我们测试数据通过该项目,我们希望读者可以快速掌握现代化Java Web开发技巧以及最佳实践。...测试 配置H2内存数据库 至此我们已经完成了所有代码开发,接下来我们需要书写单元测试代码来测试我们代码质量。我们刚才开发过程中采用mysql数据库一般我们在测试时经常采用是内存数据库。...这里我们使用H2作为我们测试场景中使用数据库。 要使用H2也很简单,只需要跟使用mysql时配置一下即可。...然后只要在我们测试类中加上@ActiveProfiles(profiles = "test")注解来启用test环境下配置,这样就能一键从mysql数据库切换到h2数据库。...这样当我们测试时,h2就会读取这两个文件,初始化我们所需要表结构以及数据,然后在测试结束时销毁,不会对我们mysql数据库产生任何影响。这就是内存数据库好处。

99320

工具篇 | H2数据库使用和入门

H2以其轻量化和高性能闻名,无论是作为轻量级应用内存数据库,还是大型应用本地缓存数据库,都展现出极高适应性。尤其是在开发阶段,H2凭借其快速部署和便捷管理,成为了许多开发人员首选。...以下所有示例均已上传至Github上,大家可以项目拉取到本地进行运行 Github示例(如果对Gradle还不熟练,建议翻看我之前文章):gradle-spring-boot-demo H2 Console...3.2 H2与其他数据库比较 3.2.1 与MySQL比较 H2轻便和简易配置与MySQL丰富功能形成鲜明对比。H2适合简单、快速开发和测试MySQL更适应大型、功能丰富企业级应用。...从自己角度和我每天执行任务来看,MySQL是完美的选择。具有合理占用空间,速度足够快,并且提供了需要安全性和灵活性。...H2数据库与这些技术集成也非常简单和直观。在本章中,我们深入探讨如何在基于Spring Boot项目中使用H2数据库,并借助Spring Data JPA进行数据操作。

5.3K30

Spring Boot 2.4.3、2.3.9 版本发布,你准备好了吗?

3、修复 在通过jOOQ访问数据库之前,Flyway或Liquibase执行动作可能尚未完成导致访问失败问题 4、修复 当spring.profiles.include作为YAML列表写入配置文件使用时遇到异常情况不会有报错信息问题...导致异常转换问题问题 27、修复可以通过 org.springframework.cglib.core.ReflectUtils进行非法访问问题 28、修复元数据日志会记录无效java.nio.charset.Charset...有: 修复 在通过jOOQ访问数据库之前,Flyway或Liquibase执行动作可能尚未完成导致访问失败问题 修复缺少新版本 hibernate-micrometer 模块依赖关系导致管理出错问题...参数指标时会导致RestTemplate受干扰问题 修复WebMvcTest和WebFluxTest测试时会自动忽略用户自定义IDialect bean问题 其余内容可以登录以下地址直接进行查看.../spring-boot/releases/tag/v2.3.9.RELEASE 如果对本次更新有什么不明白也可以留言进行讨论。

2.1K20

利用顶层框架,秒变微服务专家

究竟那项技术好,该用什么客户端,什么样数据库最适用,相信有不少争论。本文主题是不论菜鸟老手,只要好好地把握当今Java web 技术趋势,分配本身有限精力,创造出精彩Java项目!...应用程式测试和运作 当该项目-kenlen应用程式成功创立了,下一步骤就是测试这模版。首先要建立了该程式使用数据库。...打开MySQL Workbench:(有关MySQL使用步骤,参考网上MySQL资料) 建立数据库要求: scheme name: kenlen default collation: utf8-utf8...前沿、高效 Java Web 开发环境和示例代码 原本我是不用 Java ,看到了 Spring Boot 还有些犹豫, 看到 Jhipster 之后,觉得就是了 后端 Jhipster 提供了两套后端架构示例代码...数据库(产品模式)(多选一) 支持 H2 嵌入式数据库(开发模式,提供管理工具) 使用 Liquibase 进行数据库版本控制 数据库缓存,单机 Ehcache 和集群 Hazelcast (二选一)

2.2K60

Skywalking存储配置与调优

通过探针自动收集所需指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM会感知应用间关系和服务间关系,并进行相应指标统计。...目前Skywalking支持h2mysql、ElasticSearch作为数据存储,就说一下,这三个种库优缺点和使用要求: 1、首先是默认h2 h2是Skywalking...要使用文件数据库,有个前提是要先启动h2TCP服务,因为默认skywalking调用是内存数据库,如果没有启动h2 TCP,由于监听不到端口,oapService就会判断为连接故障关闭。...h2文件数据库虽然非常轻量级,毕竟skywalking自带了,但是稳定性却很差,一但文件损坏(大并发量和大吞吐量监控数据,就会把干坏),oapService服务就启动不了了,需要清除文件或是恢复及覆盖文件才能启动...3、ElasticSearch 官网好像是推荐使用ElasticSearch,为什么推荐?,应该是快呀。

9K30

SpringBoot项目拥抱Mybatis-Plus持久层框架实践,全面提升数据库层面开发效率!

:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能...SQL 数据库,具体支持情况如下: mysql,oracle,db2,h2,hsql,sqlite,postgresql,sqlserver,Phoenix,Gauss ,clickhouse,Sybase...网上案例也比较多,在本文就不再延伸演示了 3.1 建表 这里mysqltest数据库中新建了一张stock_info表,代表商品信息表,也是为了方便学习分布式电商项目的需要。...我们调用批量插入接口一次性插入5条数据,接口返回状态码200表示添加数据成功 然后我们通过客户端Navicat查询数据库也可以看到通过调用单个添加和批量添加接口添加数据入库了,一些数据之前调用添加接口写入数据库...4.2.3 测试分页查询接口 最后我们测试下分页查询效果: 1)首先不带查询参数进行分页查询,此时查是表中全部数据 接口响应信息里显示共查出了27条数据,每页显示10条,共3页 2)最后带上查询参数进行分页查询

1.7K20

你在测试金字塔哪一层(下)

可能是因为方法过于复杂,如果通过公共接口来测试,需要准备大量数据和环境。在这种情况下,可以考虑原来类拆分成两个类,按照职责进行拆分。...例如,一个数据库集成测试可能按照以下步骤进行:启动数据库连接应用到数据库调用被测函数,该函数会往数据库数据读取数据库,查看期望数据是不是被写到了数据库里另一个例子是通过REST API和外部服务集成测试...这些场景可能比你想象得更多,比如说:调用自身服务 REST API读写数据库调用外部服务 API读写队列写入文件系统编写狭义集成测试时,我们应尽可能在本地运行外部依赖,如启动本地MySQL数据库...我们在本地运行测试,无需真的安装PostgreSQL数据库,而是连接到一个内存H2数据库,这可以提供更简单环境设置。我们在build.gradle中已经H2定义为测试依赖项。...除此以外,使用内存数据库进行测试实际上是有风险。毕竟,集成测试针对数据库和我们生产用数据库是不同。下面是一个集成测试示例,先将一个Person对象保存到数据库中,根据last name查找。

10110

Spring、Spring Boot和TestNG测试指南 - 集成测试中用Docker创建数据库

测试关系型数据库一篇里我们使用H2数据库,这是为了让你免去你去安装/配置一个数据库工作,能够尽快了解到集成测试过程。...在文章里也说了: 在真实开发环境中,集成测试数据库应该和最终生产数据库保持一致 那么很容易就能想到两种解决方案: 开发团队使用共用同一个数据库。...这样做问题在于:当有多个集成测试同时在跑时,会产生错误测试结果。 每个人使用自己数据库。这样做问题在于让开发人员维护MySQL数据库挺麻烦。 那么做到能否这样呢?...测试启动前,创建一个MySQL数据库 测试过程中连接到这个数据库 测试结束后,删除这个MySQL数据库 So, Docker comes to the rescue。...这个很有用,如果集成测试失败,那么你还可以连接到MySQL数据库查看情况。

1.1K20

H2数据库集群_数据库集群搭建

大家好,又见面了,是你们朋友全栈君。 H2数据库集群 1. H2数据库简介 1.1 H2数据库优势 常用开源数据库H2,Derby,HSQLDB,MySQL,PostgreSQL。...内嵌模式是最快和最容易连接模式。缺点是任何时候数据库只能在一台虚拟机(和加载类)。像所有的模式,持久数据库和内存数据库都被支持。没有打开连接数和打开数据库数量方面的限制。...第一个应用本地连接与嵌入式模式连接性能一样快,远程连接有点慢。 服务器能通过应用来进行启动和停止(使用服务API),或是是自动方式(自动混合模式)。...当使用自动混合模式,所有客户端都需要使用同样URL进行连接(不管它是一个本地还是一个远程连接。...稳定性与可用性 4.1 测试对比 测试场景,分为几种场景测试,分别对单节点单数据库方式与两台主机两个数据库分别多个线程插入查询增量数据进行性能分析,比较集群性能损耗,以及对集群可用性,分别对两个

1.8K20

Docker Getting started with Java

完成测试后,清理现场: docker rm -f java-docker 构建本地开发环境 前面的示例中,我们已经可以通过容器方式部署我们服务了。...但是刚刚服务只是一个单体服务,接下来我们会分别通过手动部署和 Docker Compose 两种方式部署Java 应用服务 和 MySQL 数据库服务两个有关联服务。...手动部署服务 在容器中运行 MySQL 数据库服务 首先创建两个 volume,用于持久化存储 MySQL 数据和配置: docker volume create mysql_data docker...volume create mysql_config 然后创建一个网络,Java 应用程序和数据库容器将使用该网络相互通信,该网络被称为用户自定义桥接网络,在自定义桥接网络中,容器之间可以使用...mysqlserver/petclinic \ -p 8080:8080 java-docker:v1.0.1 使用以下命令来测试 API 接口,Java 应用服务会去查询 MySQL 数据库并返回结果

1.9K60

跟我学Spring Cloud(Finchley版)-02-构建分布式应用

如图,用户向电影微服务发起了一个购票请求。在进行购票业务操作前,电影微服务需要调用用户微服务接口,查询当前用户余额是多少、是不是符合购票标准等。...-- 引入H2数据库,一种内嵌数据库,语法类似MySQL --> com.h2database <artifactId...; spring-boot-starter-data-jpa 提供了Spring Data JPA支持; h2 是一种内嵌数据库,语法和MySQL类似(笔者实在没有动力为了简单演示再写一大堆内容去演示怎么安装...MySQL数据库); lombok 则是一款开发利器,可以帮助你简化掉N多冗余代码。...你可能会质疑:用户微服务地址为什么会变,让保持不变就行了啊,这不是问题。

41720

Spring Boot with Mysql

1.建立数据库连接(database connection) 在上篇文章中我们新建了一个Spring Boot应用程序,添加了jdbc和data-jpa等starters,以及一个h2数据库依赖,这里我们配置一个...不过,这个数据库并没什么用,因为存放其中数据会在系统停止后就丢失。通过修改配置,我们可以数据存放在磁盘上。...通过“~/test”,就告诉Spring Boot,H2数据库数据会存放在test.mv.db这个文件中。...最常用开源数据库Mysql,在Spring Boot通过下列配置项来配置mysql: spring.datasource.driver-class-name=com.mysql.jdbc.Driver...@Repository 用来表示访问数据库并操作数据接口,同时修饰接口也可以被component scan机制探测到并注册为bean,这样就可以在其他模块中通过@Autowired织入。

3.6K20
领券