如何存储 XML 数据?
How can I store XML data?
我看到了 How can I insert an XML document in PostgreSQL in Java? 但我想知道 jOOQ 是否提供了另一种解决此类问题的方法。
目前我没有看到另一种方法来写类似
的东西
String sql = "INSERT INTO xml_docs(id, gkuzu) VALUES (?, XMLPARSE(?))";
并用 jOOQ
执行
this.ctx.execute(sql);
但是对于更复杂的语句是否还有另一种选择,我也可以在其中编写例如
StringBuilder xml = new StringBuilder();
// ..
this.ctx.insertInto(MY_TABLE)
.set(MY_TABLE.NAME, name)
// ..
.set(MY_TABLE.DESCRIPTION_XML, xml.toString());
或类似?
jOOQ 3.7 不支持开箱即用的 XML(或 JSON 等)类型,但实际上,jOOQ 通过实现帮助您抽象出 XML 数据类型您的自定义数据类型绑定。手册中有 JSON 和 PostgreSQL 的示例。您可以轻松地适应 XML:
http://www.jooq.org/doc/latest/manual/sql-building/queryparts/custom-bindings
基本上,您需要实施 org.jooq.Binding<Object, YourXMLRepresentation>
,然后配置代码生成器以将此绑定应用于所有 XML
类型的列,或特定名称模式的列:
http://www.jooq.org/doc/latest/manual/code-generation/custom-data-type-bindings
我看到了 How can I insert an XML document in PostgreSQL in Java? 但我想知道 jOOQ 是否提供了另一种解决此类问题的方法。
目前我没有看到另一种方法来写类似
的东西String sql = "INSERT INTO xml_docs(id, gkuzu) VALUES (?, XMLPARSE(?))";
并用 jOOQ
执行this.ctx.execute(sql);
但是对于更复杂的语句是否还有另一种选择,我也可以在其中编写例如
StringBuilder xml = new StringBuilder();
// ..
this.ctx.insertInto(MY_TABLE)
.set(MY_TABLE.NAME, name)
// ..
.set(MY_TABLE.DESCRIPTION_XML, xml.toString());
或类似?
jOOQ 3.7 不支持开箱即用的 XML(或 JSON 等)类型,但实际上,jOOQ 通过实现帮助您抽象出 XML 数据类型您的自定义数据类型绑定。手册中有 JSON 和 PostgreSQL 的示例。您可以轻松地适应 XML:
http://www.jooq.org/doc/latest/manual/sql-building/queryparts/custom-bindings
基本上,您需要实施 org.jooq.Binding<Object, YourXMLRepresentation>
,然后配置代码生成器以将此绑定应用于所有 XML
类型的列,或特定名称模式的列:
http://www.jooq.org/doc/latest/manual/code-generation/custom-data-type-bindings