如何在 HSQLDB 表列中以字符串形式保存 XML 数据

Posted

技术标签:

【中文标题】如何在 HSQLDB 表列中以字符串形式保存 XML 数据【英文标题】:How to save XML Data in String form in HSQLDB table column 【发布时间】:2020-12-29 04:53:57 【问题描述】:

我有一个 webservice 客户端,它以字符串形式为 xml 数据调用 Webservice-A。客户端以字符串形式接收 xml 数据。线程需要将相同的xml数据以字符串形式推送到另一个Webservice-B。 我们需要的是在通过线程将其推送到 Webservice-B 之前将这些 xml 数据保存在 hsqldb 表列中。我检查了包含 XML 的 HSQLDB 支持的数据类型,但是当我将列的数据类型设置为 XML 时,无法创建表。 请指导。

【问题讨论】:

【参考方案1】:

您使用 LONGVARCHAR 或 CLOB 列创建表并将 XML 数据存储在那里。

您只需使用 PreparedStatement 的 setString() 方法和 RasultSet 的 getString() 方法来插入和检索 XML。

只有在需要访问字段或创建 XML 数据时,才使用 ResultSet 的 getSQLXML() 方法和 Connection 的 createSQLXML() 方法。

【讨论】:

我已将 xml 字符串保存在 LONGVARCHAR 中,但现在它在检索数据时显示出一些性能问题。请告诉我如何将字符串数据转换为 clob 并将其保存在 HSQLDB 中,因为 HSQLDB 不支持 dbConn.createClob();方法 实际支持 createClob()。但是您不需要它,可以使用您当前使用的方法将字符串数据插入数据库。您只需执行ALTER TABLE <tablename> ALTER COLUMN <colname> SET DATA TYPE CLOB 即可将现有列转换为 CLOB。

以上是关于如何在 HSQLDB 表列中以字符串形式保存 XML 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从一个表列中获取值,将它们与字符串连接并将它们插入另一个表中?

我们如何将表情符号保存在 SQL 数据库中以保留它们的唯一性以进行相等比较?

在 Oracle 时间戳列中以 UTC 保存日期

如何在代码中的sql表列中插入默认值

PostgreSQL - 替换表列中特定字符的所有实例

Pyspark:将数据帧作为 JSON 存储在 MySQL 表列中