问题标签 [h2]

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 投票
1 回答
9033 浏览

database - 如何在 H2 中创建程序

这似乎与另一个具有相同标题的问题重复,但实际上并非如此。

我们的业务逻辑主要实现为 DB2 存储过程(我看到 H2 具有 DB2 兼容模式 - 很好!)。

我们如何通过这些程序使用 H2 进行内存单元测试?

不幸的是,H2 似乎缺少其语法中的 CREATE PROCEDURE 命令。

我不想将 Java 函数用作存储过程。如果同样的 sql 文件也可以用于测试和生产,那将是最好的……我要求太多了吗?

编辑:我们也使用 SQL 游标......再次,没有支持的迹象 :-(

0 投票
1 回答
2973 浏览

java - H2 控制台 - 通过浏览器查看数据库会显示旧数据

我将H2 数据库用于一个简单的 Web 应用程序。

当我尝试通过 H2 控制台 Web 浏览器查看数据时,它似乎没有使用数据库中的最新数据进行更新。

例如:

我使用我的网络应用程序向表中添加了一条新记录,当我select *从表中添加记录时,它不显示新记录。

当我通过浏览器连接到 H2 控制台时,我有以下登录设置:

保存的设置:通用 H2(嵌入式)

设置名称:Generic H2(嵌入式)

驱动类:org.h2.Driver

JDBC URL:jdbc:h2:file:/Develops/Databases/snowy_db;FILE_LOCK=NO

关于如何使用 H2 控制台浏览器访问数据库中的最新数据的任何想法?

提前致谢。

编辑

补充一点:我可以在我的网络应用程序中看到新记录,但在我使用 H2 控制台浏览器时看不到。

0 投票
2 回答
7601 浏览

java - 在 h2 数据库中插入视图

编辑:我想将值添加到使用该表的视图(viewPaziente)而不是直接使用该表的表(paziente)。

edit2:在代码中发现了一个愚蠢的错误,现在它确实给了我一个错误,但它没有帮助:

org.h2.jdbc.JdbcSQLException:不支持功能:“VIEW”;SQL 语句:INSERT INTO "viewPaziente" values(?,?,?,?,?,?,?,?,?,?,?,?,?) [50100-147]

是否可以在表格视图中插入一行?

我的意思是......我有一个包含许多字段的表“paziente”,我创建了一个 Paziente 视图,我想通过该视图向 paziente 添加一行。可以在H2中做到这一点吗?

我正在使用以下代码

0 投票
1 回答
23729 浏览

embedded-database - 内存模式下的H2数据库不能被Console访问

我在 servlet 上下文启动时通过以下代码在 H2 数据库中创建内存数据库

我稍后在jdbc:h2:mem:db1同一个 JVM 中通过 url 访问,这也在工作。但是当我想通过jdbc:h2:tcp://localhost/mem:db1它访问它时,它在同一个 JVM 或不同的 JVM 中都不起作用。

我实际上想以嵌入式模式运行系统并使用控制台查看内容。如果我以相同的 servlet 上下文启动方法启动网络服务器,我可以看到控制台,但它仍然没有使用 url 连接到内存数据库jdbc:h2:tcp://localhost/mem:db1

如果我使用命令行启动服务器

然后尝试连接,令人惊讶的是它连接但没有数据。似乎它正在自己创建一个单独的服务器和一个不同的数据库。所以没有数据。

0 投票
2 回答
574 浏览

hsqldb - HSQLDB 相当于 H2 自动混合模式

有吗?显然不是。此处介绍 H2 自动混合模式 。

0 投票
3 回答
9276 浏览

java - 如何从 CSV 文件的某些字段创建 h2 数据库

我想从 CSV 文件创建一个新的嵌入式 h2 数据库。这是csv文件的片段

国家、城市、口音城市、地区、人口、纬度、经度

广告,aixovall,Aixovall,06,,42.4666667,1.4833333

ad,andorra,Andorra,07,,42.5,1.5166667

广告,安道尔城,安道尔城,07,20430,42.5,1.5166667

ad,andorra-vieille,Andorra-Vieille,07,,42.5,1.5166667

ad,andorre,Andorre,07,,42.5,1.5166667

我不想检索 csv 文件的所有字段。实际上,我想要它们,除了CityRegion字段。

此外,我想仅当POPULATION的内容不为空时才将 csv 文件的内容插入数据库。

因此,在上面的 csv 示例中,我们必须只将第 3 行插入到 h2 表 WORLDCITIES 中,因为它的“人口”字段已被指示。

这是我写的一段代码。但是,如您所见,这还不够:

如果我理解正确,CSVREAD 使用 VARCHAR 类型创建字段,但我想要这样的东西:

COUNTRY VARCHAR(3)、ACCENTCITY VARCHAR(40)、人口浮点数、纬度浮点数、经度浮点数

提前感谢您的帮助。

0 投票
2 回答
992 浏览

database - 如何在 H2 的查询结果中显示字段的隐藏字符?

我在 h2 数据库中有一个 varchar 字段,我希望能够看到每个字符(包括新行和回车等特殊字符)。

基本上,我需要知道Oracle 的 dump()的 h2 等价物。

0 投票
1 回答
2242 浏览

sql - 创建 EntityManager (JPA + SPRING + H2) 时 INFORMATION_SCHEMA 不存在错误

我对 JPA (OpenJPA) + Spring (Web Flow using Spring Web MVC) + H2 数据库引擎有疑问。我为我的简单 Web 应用程序提供了简单的 RegisterDAO。我正在使用依赖注入将 EntityManagerFactory(通过 @PersistentUnit 注释)注入我的 RegisterDAO。一切看起来都很好(EntityManagerFactory 不为空,它似乎被注入了)但是当我试图从这个工厂创建 EntityManager 时出现问题。GlassFish(我使用的)抛出类似这样的异常(无法以原始形式打印,因为消息是波兰语:)):

这很奇怪,因为当我使用 H2 控制台并输入“SELECT SEQUENCE_SCHEMA, SEQUENCE_NAME FROM INFORMATION_SCHEMA.SEQUENCES”时,一切正常(我看到这组名为 INFORMATION_SCHEMA 的表)。当然,我将这个 sql 语句称为登录用户名,我在 persistence.xml 文件中使用它。

有任何想法吗?

编辑:我的配置:persistence.xml:

春季的applicationCotext.xml:

网络配置:

我使用 Maven,我的依赖项:

0 投票
6 回答
138410 浏览

java - 我可以让 H2 在内存数据库中自动创建模式吗?

(我已经在内存中看到了 H2 数据库 - Init schema via Spring/Hibernate question;它在这里不适用。)

我想知道 H2 中是否有一个设置可以让我在连接到它时自动创建一个模式。如果有帮助,我只对内存中的情况感兴趣。

H2 在 URL 末尾支持各种以分号分隔的修饰符,但我没有找到用于自动创建模式的修饰符。有这样的功能吗?

0 投票
2 回答
575 浏览

java - 基本的 ORMLite 数据库问题

关于ORMLIte 网站上列出的示例,我有两个问题。

  • 我在哪里放置数据库以及如何导入它?
  • 我将DAO和连接工厂放在哪个类?