问题标签 [hsqldb]
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.
java - DDD 示例应用程序 - hsqldb 在哪里?
我下载了 DDD 示例应用程序(基于 Eric Evans 的书),它使用了 hsqldb。但是,我似乎无法找到这个数据库是如何设置的。我在 Intellij 中打开了这个项目,一切都像魅力一样。但是我在任何地方都找不到这样的 hsqldb ...我不是经验丰富的 Java 开发人员,所以我可能遗漏了一些东西。任何人都可以为我回答这个问题吗?
java - 是否有为 Java EE 容器定义 JDBC 数据源的标准方法?
我知道对于 JBoss,您需要在相应实例的 /deploy 子目录中创建一个 [name]-ds.xml 文件。我对其他 Java EE 容器没有任何经验,但我试图尽可能地遵守标准。是否有定义 JDBC 数据源并部署它的标准方法?如果可能的话,我想在 *.ear 文件中包含我的数据源(例如,用于演示目的的嵌入式内存 HSQLDB 数据源)?
如果没有标准方式,其他容器至少会接受jboss方式吗?(/部署/*-ds.xml)
mysql - 将 HSQLDB 传输工具与 MySQL 一起使用时出现问题
我正在尝试使用 HSQLDB 传输工具从 MySQL 迁移数据库。该工具能够从源 MySQL 数据库中获取表,但是当我“开始传输”时出现错误,如下所示,并且未在目标 HSQLDB 数据库中创建表。
知道如何克服这个问题吗?
我的主要目的是将 MySQL SQL 转换为等效的 HSQLDB,我想在 MySQL 工作台之前有一个工具可以做到这一点。
java - 内存数据库 close()
在内存数据库中,是否需要关闭 ResultSets、Statements 和 Connections?
我的 Java 程序使用 HSQLDB 创建一个“内存表”并用数据填充它,稍后它会查询这些数据。没有坚持。一切都在记忆中完成。该程序是单线程的,只有一个数据库连接(即没有数据库连接池)。
java - 运行脚本以使用 HSQLDB 创建表
我使用hsqldb运行需要数据库访问的单元测试。
目前,当我想为特定测试创建表时,我有以下代码:
该getConnection()
方法检索在Spring
上下文中定义的 DataSource:
现在,我想从一个 SQL 脚本创建我的表(当然,这个脚本将包含多个表创建):
我在 HSQLDB 文档中看到我可以让他在启动时运行一个脚本。但是,它不符合我的要求,因为我想在运行时运行脚本。
当然,我可以自己读取文件,并且对于每条 SQL 语句,我都会运行一个ps.executeUpdate()
命令,但我不想使用这种解决方案(除非没有其他解决方案)。
任何想法?
java - SimpleJdbcTestUtils.executeScript 和多行脚本
我想为我的单元测试加载 SQL 脚本文件。由于我使用的是 Spring 2.5.2,因此我决定使用该SimpleJdbcTestUtils.executeScript()
方法加载我的脚本文件,使用以下代码:
如果我将每个 SQL 语句写在文件的一行中create-table.sql
,那么一切正常。但是如果我在多行上写一个语句,那么我会得到一个错误,即使语句是由一个;
.
工作脚本:
不工作的脚本:
第二个文件错误:
由于我愿意创建更复杂的表,我更喜欢以更易读的方式编写 SQL 指令,因此使用几行。有没有办法做到这一点?
java - 将 HSQLDB 用于生产是否安全?(JBoss AS5.1)
JBoss 开发人员警告不要将 HSQLDB 用作持久存储(请参阅JBoss wiki)。不过我很困惑,因为 HSQLDB 似乎在生产中被大量使用。
特别是,上面提到的页面似乎完全警告不要使用 HSQLDB ,而不是反对与 JBoss 一起使用。
是否仍然不推荐在 JBoss 中使用 HSQLDB(特别是 Community JBoss 5.1 中捆绑的默认数据源)?
*:我们计划在内存模式下使用它。
java - 如何使用普通 JDBC 获取目标表的名称和外键列的列
我正在尝试使用普通 JDBC 制作一段代码,该代码可以获取目标表的名称和特定表中特定列的外键列的名称,但是通过核心接口我似乎找不到直接的方法来做到这一点。
有没有办法直接通过 JDBC 获取有关外键的此类信息,或者我是否必须求助于特定数据库的元数据查询,在这种情况下是 HSQLDB。
如果我必须使用特定于数据库的元数据查询,哪些 HSQLDB 内部元数据表包含该信息?
java - 在 HSQLDB 2.0.0-rc8 中选择下一个序列值的“正确”方式
假设我有一个序列,称为 TEST_SEQ 选择下一个值的正确方法是什么?这不起作用:
可能是因为它需要一个“FROM”子句。在休眠中查看 HSQLDialect.getSequenceNextValString() 我看到了这个:
在我的情况下会导致类似的结果:
这不适用于 2.0.0-rc8(我只假设这适用于 2.0 之前的版本 - 尚未验证)我遇到了一个解决方案,该解决方案涉及创建一个名为 DUAL 的具有 1 行的简单表,在这种情况下这将起作用(甲骨文风格):
但是 hsqldb 并没有自带这个表,我不确定如何让休眠状态在“第一次启动”时生成这样的表。
我认为必须有一种方法可以开箱即用地获取序列的下一个值,而我只是错过了它。有任何想法吗 ?
sql - 条件插入作为 HSQLDB 1.8 中的单个数据库事务?
我正在使用一个特定的数据库表,例如“Set”数据结构,即您可以尝试多次插入同一行,但它只会包含一个实例。主键是自然键。例如,我希望以下一系列操作能够正常工作,并且只为俄克拉荷马州产生一行:
由于后续插入相同值的主键重复,我当然会遇到错误。有没有办法使插入有条件,这样就不会抛出这些错误?即仅在自然键不存在时才进行插入?
我知道我可以先做一个 where 子句和一个子查询来测试该行的存在,但这似乎很昂贵。这是一个逻辑“条件插入”操作的 2 个物理操作。SQL中有类似的东西吗?
仅供参考,我正在使用 HSQLDB 1.8