首页
学习
活动
专区
工具
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.4K10

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

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

1.8K100
  • 面试必问的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 的依赖项 或者至少把它作为测试的范围。

    12.4K31

    精选的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.8K30

    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 面试题精华

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

    16.3K40

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

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

    1K20

    工具篇 | 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进行数据操作。

    8.9K40

    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.2K20

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

    究竟那项技术好,该用什么客户端,什么样的数据库最适用,相信有不少的争论。而本文的主题是不论菜鸟老手,只要好好地把握当今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.3K60

    Skywalking的存储配置与调优

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

    10.1K30

    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 建表 这里我在mysql的test数据库中新建了一张stock_info表,代表商品信息表,也是为了方便学习分布式电商项目的需要。...我们调用批量插入接口一次性插入5条数据,接口返回状态码200表示添加数据成功 然后我们通过客户端Navicat查询数据库也可以看到通过调用单个添加和批量添加接口添加的数据入库了,一些数据是我之前调用添加接口写入到数据库中的...4.2.3 测试分页查询接口 最后我们测试下分页查询效果: 1)首先不带查询参数进行分页查询,此时查的是表中全部数据 接口响应信息里显示共查出了27条数据,每页显示10条,共3页 2)最后带上查询参数进行分页查询

    1.9K20

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

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

    1.2K20

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

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

    12710

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

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

    1.9K20

    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 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
    领券