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

为什么H2文件数据库数据每次都被清除

H2文件数据库是一种轻量级的嵌入式数据库,它将数据存储在本地文件中。H2数据库的数据每次都被清除的原因可能有以下几种情况:

  1. 数据库连接方式:H2数据库支持多种连接方式,包括嵌入式连接和服务器连接。如果使用嵌入式连接,每次应用程序启动时都会创建一个新的数据库实例,这会导致之前的数据被清除。建议使用服务器连接方式,这样可以保留数据并允许多个应用程序同时访问数据库。
  2. 数据库文件路径:H2数据库的数据文件默认存储在应用程序的工作目录下。如果每次启动应用程序时工作目录发生变化,数据文件可能无法找到,从而导致数据被清除。建议指定一个固定的路径来存储数据文件,确保数据的持久性。
  3. 数据库配置:H2数据库的配置文件中有一些参数可以影响数据的持久性。例如,如果将数据库的MODE设置为"MEM",则数据将只存储在内存中,每次应用程序关闭后都会被清除。建议将MODE设置为"FILE",以将数据持久化到文件中。
  4. 数据库操作:在应用程序中,如果执行了删除表、删除数据等操作,会导致数据被清除。请确保在操作数据库时谨慎处理,避免误操作导致数据丢失。

总结起来,H2文件数据库数据每次被清除的原因可能是使用了嵌入式连接、数据库文件路径发生变化、数据库配置不正确或应用程序中执行了删除操作。为了保留数据,建议使用服务器连接方式,指定固定的数据文件路径,并正确配置数据库参数。

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

相关·内容

  • EasyCVR更新版本后无法清除数据库已删除文件,该如何解决?

    EasyCVR视频融合云服务基于云边端一体化架构,具有强大的数据接入、处理及分发能力,平台支持海量视频汇聚管理,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、语音对讲、智能分析等视频能力...图片近期有用户反馈,EasyCVR版本升级后,连接老版本的MySQL数据库,将之前的离线通道设备删除后发现,录像计划里仍然存在删除的设备数据。...图片图片为提高用户体验,优化平台功能,技术人员收到反馈后立即开展排查与解决,以下为解决方法:1)首先排查发现,在删除离线通道和清理无效数据后,导出通道表可以看到删除数据仍然存在于数据库里,所以需要在数据库中进行删除才能生效...图片2)随后换成自带的数据库来测试,发现不会出现此问题,排查结果为数据库表的字段发生了变化。3)只需手动修改数据库字段属性和手动删除数据信息即可。...4)同时,技术人员也同步优化了平台数据库兼容,进行向下兼容即可。

    82520

    为什么配置文件加密了数据库配置信息,Spring Boot仍能成功连接数据库

    比如你想要连接mysql数据库,只需要的配置文件里面加入mysql的一些配置信息就可以了。为了保护数据的安全性,越来越多的公司选择加密这些重要信息。...接下来一起来看看如何实现配置加密文件并且成功连接数据库的。 配置信息加密有好几种方式,这里我只详细的写一下我比较常用的一种方式。...首先通过某种加密算法将用户名和密码进行加密,然后在配置文件中用加密串代替原来的明文。然后自定义数据源,在自定义数据源中解密用户名和密码。...在spring-boot-autoconfigurejar包的META-INF/spring.factories文件中指定了一个类用来加载数据库配置信息,这个类就是org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration...自定义数据源 这里使用HikariDataSource作为自定义的数据源,自定义的数据源目的就是为了解密配置文件中的配置信息。

    80630

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

    2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。...它的缺点是任何时候数据库只能在一台虚拟机(和加载类)。像所有的模式,持久数据库和内存数据库都被支持。没有打开连接数和打开数据库数量方面的限制。...架构是:两个数据库服务运行在两台不同的计算机上,两台计算机有同样数据库的副本,如果两个服务器都处于运行状态,每个数据库操作都被在两台计算机上执行,如果一台服务器宕机(断电、硬件故障、网络故障等),另外一台计算机仍能提供服务...2.每次都先清除数据,保持数据库一致,执行以下语句: DROP TABLE IF EXISTS TEST_TABLE; CREATE TABLE TEST_TABLE(id VARCHAR(36),name...就是说以最终保持服务的数据库为准,使用集群工具启动集群服务时,将把urlSource 的数据文件拷贝到urlTarget ,如果弄反了,会把空数据库文件覆盖了在使用的数据库文件(相当于把数据都清空了~~

    1.9K20

    一个H2数据库Bug的定位之旅

    需要介绍一下H2和FitNesse,因为这是整篇文章的基础。 别紧张,只是简单了解一下。知道它们是个什么东西就行了。 H2数据库 H2数据库是什么?...H2流行的原因是它既可以当做一个独立的服务器,也可以以一个嵌套的服务运行,并且支持纯内存形式运行。 H2的jar包非常小,只有2M大小,所以非常适合做嵌入式数据库。...因为支持纯内存形式,所以在Java开发中,经常被作为单元测试的数据库。跑前插入,因为基于内存,跑后直接回收清除了。 OK,到这里,你已经大致了解了H2是一个什么东西了。...我突然一想,为什么我要这么做呢?不就是数据库的自增主键没有初始化吗?那我用命令把他初始化不就可以了吗? 真是太愚蠢了!...结论 H2数据库使用TRUNCATE命令去重置表的时候,如果表里面有一条数据的话,是不会重置自增列的。 这是H2的一个Bug,在下一个版本会修复,但是现在看起来下个版本遥遥无期。

    64930

    开源中国社区创始人红薯:J2Cache开源中国两级缓存实践

    这个网站撑了有两三年的时间,后来数据长得很快,就开始出现问题了。第一个就是单节点无法应付高并发的访问。还有一个最可怕的问题就是因为程序更新很频繁,Java每次更新的时候都要重启。...一旦重启后,整个Ehcache缓存里的数据都被清掉。所以说重启然后大量访问进来的话,数据库基本上很快就会崩掉了。 那么我们为什么不选择Ehcache的集群方案呢?...数据基本上都是从Ehcache里面取的,有效的缓解应用冷启动对数据库的压力。应用和redis之间不会有大量的数据传输,因为大量数据传输只存在于冷启动的时候。...J2Cache数据读取流程 每次数据的时候首先从Ehcache里先读,因为Ehcache在你的内存中。...如果redis也没有,这时才读数据库数据,然后同时把它的数据塞到Ehcache和redis里面,最后返回数据。 ? J2Cache数据更新流程 ? 清除数据首先是要清除节点。

    1.1K90

    React Hook丨用好这9个钩子,所向披靡

    为什么 要在 Effect 中返回一个函数 ? 这是 effect 可选的清除机制。每个 effect 都可以返回一个清除函数。如此可以将添加和移除订阅的逻辑放在一起。...本小节通过 Context 来 达到组件数据共享 什么是 Context 数据共享,任何组件都可访问Context 数据。...在React 中,组件数据通过 prop 来达到 自上而下的传递数据,要想实现全局传递数据,那么可以使用 Context ....创建 Context 在使用Context 前提,必须创建它,可以为它单独创建一个文件来管理Context, import React from 'react'; export const MyContext...>{newValue} ) } 解析栗子 当点击了 5 次更新 num 值,页面中 newValue 的值始终显示为 0,这是为什么呢?

    2.3K31

    快速集成 Flyway、MyBatis、MyBatis-Generator、H2

    H2 H2是一个超轻量级的数据库,引入一个 1.5M 的 jar 就可以运行使用,同时支持 JDBC,内嵌,内存和服务三种模式,这样引入 H2 以后我们就可以方便的在本地调试项目了。...Flyway Flyway 是一个数据库 Migration 工具,为什么引入这个工具呢?...举个例子,如果你有3个环境:开发、UAT和线上;你有4个开发人员,每个人有自己的一个开发环境,这些环境都有一个自己的数据库,那么你是不是每次数据库变更都需要让他们去执行以下脚本?...第三步,配置数据库脚本, Flyway 命令运行的时候会默认找 resources/db/migration 文件下面的 *.sql 文件,因为数据库脚本执行是需要有顺序并且唯一,所以数据库脚本有一个命名规则...jdbcConnection 和上文中我们配置的 h2 的地址一致。后面如果有多个数据库表,直接添加 table 标签即可。 第三步,运行如下命令,就会自动生成对应的文件

    2K50

    SpringBoot配置使用H2数据库

    什么是h2数据库H2是一个Java编写的关系型数据库,它可以被嵌入Java应用程序中使用,或者作为一个单独的数据库服务器运行。...username: h2 password: h2 ##数据初始化设置 #进行该配置后,每次启动程序,程序都会运行resources/db/schema.sql文件,对数据库的结构进行操作...schema: classpath:db/schema.sql #进行该配置后,每次启动程序,程序都会运行resources/db/data.sql文件,对数据库数据操作。...data: classpath:db/data.sql ##h2 web console设置 #表明使用的数据库平台是h2 platform: h2 # 进行该配置后,h2 web...enabled: true 生成内存数据库H2 启动H2数据库有两种方式 第一种: 自动执行.sql文件每次重新启动项目是,都会去运行一次操作文件 DROP TABLE IF EXISTS `student

    3.9K50

    Spring Data JPA(二):SpringBoot集成H2

    H2是Thomas Mueller提供的一个开源的、纯java实现的关系数据库。 前言 本篇文章引导你使用Spring Boot,Spring Data JPA集成H2内存数据库。...数据初始化配置 如果你需要在程序启动时对数据库进行初始化操作,则在application.properties文件中对数据库进接配置 spring.datasource.schema=classpath...:db/schema.sql,进行该配置后,每次启动程序,程序都会运行resources/db/schema.sql文件,对数据库的结构进行操作。...spring.datasource.data=classpath:db/data.sql,进行该配置后,每次启动程序,程序都会运行resources/db/data.sql文件,对数据库数据操作。...这样每次运行程序我都可以得到一个新的数据库。这样就不需要我每次为了测试而修改数据中的内容了。

    3.3K10

    在 CentOS 安装 Halo

    更新 2022-03-28 缓存尽量选择内存别选硬盘,不然升级时容易遇到奇怪的问题,要手动清除硬盘的缓存(路径:~/.halo/.leveldb),本次1.4.17升1.5.0就遇到了问题,重新将缓存类型改为了内存.../application.yaml 用nano编辑配置文件application.yaml ,下面为示例: server: # 端口 port: 8090 # Response data...driver-class-name: com.mysql.cj.jdbc.Driver # halodb为数据库名 url: jdbc:mysql://127.0.0.1:3306/halodb...&allowPublicKeyRetrieval=true # 用户名和密码 username: halo password: PgY534iK07tGF7jht7 # H2...level 创建放 halo Jar包的目录 mkdir ~/halo cd ~/halo 下载 Halo Jar包(这里建议下载后重命名成halo.jar,方便以后更新,不然如果将Halo添加进到服务运行,每次更新后需要改

    7.5K32

    线上问题 | Redis哈希结构踩坑

    但是修复后,接下来的国庆假期,每天还是会收到上千封告警邮件(缓存的接口开关数据,且实际为关,不影响实际业务),于是同事在值班邮件中写道:xx月xx日已修复,但缓存中为空,缓存设置了过期时间,到期会自动清除...,同步数据库数据后即不再报错。...再现 细心的我发现到了过期时间之后,还是会报相应的错,还是会每天收到告警邮件,为什么呢?不是设置了过期时间吗?空值咋还在缓存中呢?...原因就在这,每次执行hset时都设置过期时间,这样就导致缓存可能很久才会过期,因为过期时间可能会一直被重置。...以此类推,最坏的情况就是,用户1的数据在哈希key每次快过期时都被重置过期时间,那么用户1的数据将会缓存(N+1)*5天才过期。即,直至所有用户数据都在哈希中且再过5天后整个hash数据才被清除

    44120

    Skywalking的存储配置与调优

    自带的,对应的jar包路径是Skywalking/oap-libs/h2-1.4.196.jar,h2是一种内存数据库,在Skywalking配置文件的默认配置如下: h2: driver: $...但是h2也可以变为文件数据库,配置如下: h2: driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource} url: ${SW_STORAGE_H2...要使用文件数据库,有个前提是要先启动h2的TCP服务,因为默认skywalking调用的是内存数据库,如果没有启动h2 TCP,由于监听不到端口,oapService就会判断为连接故障而关闭。...文件数据库,确保9092端口能被监听,再启动Skywalking的其他服务。...h2文件数据库虽然非常轻量级,毕竟skywalking自带了,但是稳定性却很差,一但文件损坏(大并发量和大吞吐量的监控数据,就会把它干坏),oapService服务就启动不了了,需要清除文件或是恢复及覆盖文件才能启动

    9.7K30

    胖哥和几个群友写了个好用的OAuth2授权服务器

    主要技术 Spring Boot Spring Security Spring Authorization Server Spring Data JPA layui thymeleaf 数据库 H2 Mysql...❝退出功能还未完善,需要通过关闭浏览器来清除session。 OAuth2 测试方法 启动Id Server,默认情况下在客户端列表提供了一个内置的OAuth2客户端。...多环境 目前Id Server提供H2和Mysql两种数据库环境,分别对应application-h2.yml和application-mysql.yml两个配置文件。...H2,默认数据库,在H2环境下,数据库DDL脚本和DML脚本会自动执行,无需开发者手动执行,该环境主要用来测试、研究、学习。 Mysql,生产推荐,首次启动时开发者手动执行初始化DML脚本。...❝目前两种环境的效果是一致的,切换时务必在pom.xml中更换对应的数据库驱动程序依赖。

    1.5K20
    领券