如何存储XML数据?

问题描述 投票:1回答:1

我看到了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());

或者类似的?

xml postgresql jooq
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.