gpt4 book ai didi

java - 如何在 Java 的 PostgreSQL 中插入 XML 文档?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:47:34 24 4
gpt4 key购买 nike

我在 Postgresql 中有一个表

DROP TABLE xml_docs;
CREATE TABLE xml_docs(
id serial PRIMARY KEY,
cad_number character(50),
gkuzu_name character(50),
gkuzu xml,
rreq_name character(50),
rreq xml
)

我使用 JDBC 进行数据库连接。我想在表中插入整个 xml 文档。
我该怎么做?

更新

好的。我试试

  String sql = "INSERT INTO xml_docs(cad_number,gkuzu_name,gkuzu,rreq_name,rreq) VALUES(?,?,?,?,?)";
PreparedStatement stmt = ce.prepareStatement(sql);
stmt.setString(1, "11:33:5464563");
stmt.setString(2, xml_gkuzu.getName());
stmt.setString(3, xml_gkuzu.toString());
stmt.setString(4, xml_rreq.getName());
stmt.setString(5, xml_rreq.toString());
stmt.executeQuery();
ce.close();
se.close();

并获得豁免

Exception in thread "main" org.postgresql.util.PSQLException: ERROR: column "gkuzu" is of type xml but expression is of type character varying
Подсказка: You will need to rewrite or cast the expression.

怎么了?

更新 2

当我尝试这样做时

 String sql1 = "INSERT INTO xml_docs(cad_number,gkuzu_name,gkuzu,rreq_name,rreq) VALUES(11335464563,"+xml_gkuzu.getName()+",XMLPARSE("+xml_gkuzu.toString()+"),"+xml_rreq.getName()+",XMLPARSE("+xml_rreq.toString()+"))";

我得到了异常(exception)

Exception in thread "main" org.postgresql.util.PSQLException: ERROR: syntax error at or near "bf48e000b0"

最佳答案

我不确定,但试试这个:

首先将您的 XML 转换为 Java 字符串。然后创建一个插入语句并使用 PostgreSQL 的 XMLPARSE 方法将您的值转换为 PostgreSQL 的 xml 类型:

INSERT INTO xml_docs(id, gkuzu) VALUES (1, XMLPARSE('<foo><bar>Hello</bar></foo>'));

参见:http://wiki.postgresql.org/wiki/XML_Support

更新:

Java 代码示例:

String sql = "INSERT INTO xml_docs(id, gkuzu) VALUES (?, XMLPARSE(?))";
[...]
stmt.setString(2, "<foo>Hello World!</foo>");

这应该创建这个语句:

INSERT INTO xml_docs(id, gkuzu) VALUES (1, XMLPARSE('<foo>Hello World!</foo>'));

关于java - 如何在 Java 的 PostgreSQL 中插入 XML 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12050945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com