问题标签 [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.
spring-boot - 如何解决h2数据库和springboot中错误的用户名和密码错误?
application.properties 中使用的属性
错误如何解决h2数据库和springboot中错误的用户名和密码错误?
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
!
java - H2db jar 在 8082 以外的端口上不起作用
我有一个 h2db jar,我想在 8082 以外的端口上运行。
我试过java -jar -Dserver.port=XXXX
了,但它仍然在 8082 上运行。
有没有办法在其他端口上运行它?
jdbc - H2 显示 DB_CLOSE DELAY 的值(由 SET DB_CLOSE_DELAY 设置)
H2 数据库有一个以 SET 开头的命令列表,特别是 SET DB_CLOSE_DELAY。我想知道 DB_CLOSE_DELAY 的值是多少。我正在使用 JDBC。设置简单
但以下均不返回 DB_CLOSE_DELAY 的实际值:
帮助将不胜感激。
sql - H2 vs PostgreSQL 生成的具有函数的列
我正在尝试设置一个生成的列,该列在减去值时也会考虑空检查。在 PostgreSQL 中,我做了:
H2 不支持年龄函数,所以我创建了另一个补丁来创建函数别名:
和相应的java代码:
我在 PostgreSQL 兼容模式下运行 H2:
但 h2 仍然不喜欢生成列的语法:
我了解 H2 希望我使用特定的间隔,例如INTERVAL SECOND
,生成为身份和STORED
关键字似乎不受支持。
有没有办法让这个查询在 PostgreSQL 和 H2 中工作?
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 语句:
导入语句的命令是
h2db - H2DB混合模式,客户端获取空查询
我正在尝试为数据库连接构建某种单元测试。首先,我正在创建一个新连接和新表,填充它,然后检查数据是否存在,此时一切都很好。比客户端创建一个新连接并尝试获取相同的数据,但查询结果为空,0 行,2 列。
}
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
junit5 - Junit测试期间如何访问内存数据库中的H2
在 JUnit 测试期间无法访问 H2 数据库控制台。由于只有在测试运行时数据库才会启动并运行,所以我尝试设置断点或睡眠命令来保持测试执行以在浏览器中访问 http://localhost:8080/h2-console,但得到“无法访问此站点”错误。
我正在使用的睡眠命令:TimeUnit.MINUTES.sleep(2);
POM.xml
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 进行集成测试的“最佳实践”?