问题标签 [h2db]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4079 浏览

spring-boot - 如何解决h2数据库和springboot中错误的用户名和密码错误?

application.properties 中使用的属性

错误如何解决h2数据库和springboot中错误的用户名和密码错误?

0 投票
2 回答
3033 浏览

java - H2 数据库 - 抛出一般错误:“java.lang.IllegalStateException:无法读取位置 2199023614787 的页面

我正在开发一个使用 H2 数据库的应用程序。过去使用此技术没有问题,但是当下载 h2 数据库的新副本并运行 jar 时,我无法使用默认设置登录!我正在跑步h2-1.4.200.jar并受到欢迎:

我试图运行默认设置只是为了连接到数据库,但似乎没有任何效果。我已经尝试了以下但没有运气,以及 github 等上的一些其他来源:

嵌入式 H2 数据库“NonTransientError: Unable to read the page at position”错误?

我在我的项目中使用以下依赖项:

并下载了对应版本相同的H2数据库——1.4.200

过去有没有其他人在使用 H2 数据库时遇到过这样的问题?我收到的错误如下图所示:

H2数据库控制台错误1:

在此处输入图像描述

任何帮助将不胜感激,我还尝试在我的 maven 依赖项和运行的 h2 版本中降级到版本 1.4.190 - h2-1.4.190

0 投票
2 回答
107 浏览

java - H2db jar 在 8082 以外的端口上不起作用

我有一个 h2db jar,我想在 8082 以外的端口上运行。

我试过java -jar -Dserver.port=XXXX了,但它仍然在 8082 上运行。

有没有办法在其他端口上运行它?

0 投票
1 回答
139 浏览

jdbc - H2 显示 DB_CLOSE DELAY 的值(由 SET DB_CLOSE_DELAY 设置)

H2 数据库有一个以 SET 开头的命令列表,特别是 SET DB_CLOSE_DELAY。我想知道 DB_CLOSE_DELAY 的值是多少。我正在使用 JDBC。设置简单

但以下均不返回 DB_CLOSE_DELAY 的实际值:

帮助将不胜感激。

0 投票
1 回答
587 浏览

sql - H2 vs PostgreSQL 生成的具有函数的列

我正在尝试设置一个生成的列,该列在减去值时也会考虑空检查。在 PostgreSQL 中,我做了:

H2 不支持年龄函数,所以我创建了另一个补丁来创建函数别名:

和相应的java代码:

我在 PostgreSQL 兼容模式下运行 H2:

但 h2 仍然不喜欢生成列的语法:

我了解 H2 希望我使用特定的间隔,例如INTERVAL SECOND,生成为身份和STORED关键字似乎不受支持。

有没有办法让这个查询在 PostgreSQL 和 H2 中工作?

0 投票
0 回答
50 浏览

java - 将数据导入 h2db

我有只有插入语句的 .sql 文件。将这些导入到已经存在的 h2db.mv.db(版本 1.4.192)文件时,我收到以下错误

线程 "main" VALUES 1" 中的异常org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Unique index or primary key violation: "PUBLIC.CONSTRAINT_INDEX_C ON PUBLIC.GROUPS(ID) ;SQL 语句:

导入语句的命令是

0 投票
1 回答
9 浏览

h2db - H2DB混合模式,客户端获取空查询

我正在尝试为数据库连接构建某种单元测试。首先,我正在创建一个新连接和新表,填充它,然后检查数据是否存在,此时一切都很好。比客户端创建一个新连接并尝试获取相同的数据,但查询结果为空,0 行,2 列。

}

0 投票
0 回答
95 浏览

java - 将持久性 SQL 命令执行到 h2db 时出现 H2 JDBC 语法错误

我的应用程序使用 Java + jOOQ + H2DB。我创建了两个Threads继续执行。

线程一:连续往表A中插入记录

线程 2:从表 A 中选择 10000 条连续记录的限制

当我运行我的应用程序时,有时会org.h2.jdbc.JdbcSQLSyntaxErrorException抛出,SQL 语句已被某些字符更改 PUBLIC.SCENAR ऀ☀䙉O_EXECUTE_LOG

相反,它是PUBLIC.SCENARIO_EXECUTE_LOG

如果我只运行线程 1 或线程 2,则不会出现此错误

这个错误是从哪里出现的?

更新:

助手类

主班

SQL

0 投票
0 回答
640 浏览

junit5 - Junit测试期间如何访问内存数据库中的H2

在 JUnit 测试期间无法访问 H2 数据库控制台。由于只有在测试运行时数据库才会启动并运行,所以我尝试设置断点或睡眠命令来保持测试执行以在浏览器中访问 http://localhost:8080/h2-console,但得到“无法访问此站点”错误。

我正在使用的睡眠命令:TimeUnit.MINUTES.sleep(2);

POM.xml

0 投票
2 回答
453 浏览

mysql - 在 Spring Boot 上下文中使用 h2db 进行集成测试是不好的做法吗?

最近在我们的团队中提出了一个问题,如果使用 h2db 进行集成测试是一种不好的做法/应该避免生产环境依赖于不同的数据库引擎,在我们的例子中是 MySQL8。

我不确定我是否同意这一点,考虑到我们的后端使用的是 spring boot/hibernate。

我做了一些阅读,发现这篇文章https://phauer.com/2017/dont-use-in-memory-databases-tests-h2/基本上说明了以下内容(以及更多内容):

TL;博士

使用内存数据库进行测试会降低测试的可靠性和范围。尽管基于 h2 的测试是绿色的,但您的应用程序的 SQL 可能会在生产环境中针对真实数据库失败。

它们提供的功能与真实数据库不同。可能的后果是:

  • 您更改应用程序的 SQL 代码只是为了让它在真实数据库和内存数据库中运行。这可能会导致不太有效、优雅、准确或可维护的实现。或者你根本无法做某些事情。
  • 您完全跳过了某些功能的测试。

据我所知,对于一个带有一些业务逻辑的简单 CRUD 应用程序,所有这些点都与我无关(本文中还有更多内容),因为 hibernate 封装了所有 SQL,并且代码中没有原生 SQL。

是否有任何我忽略或没有考虑过反对 h2db 的观点?是否有关于使用内存数据库与 spring boot/hibernate 进行集成测试的“最佳实践”?