如何在 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 数据的主要内容,如果未能解决你的问题,请参考以下文章
如何从一个表列中获取值,将它们与字符串连接并将它们插入另一个表中?