如何将XML数据从sql server存储到java中的arraylist

问题描述:

我从MySQL服务器中检索数据,其中一个列名的数据类型为XML。我需要XML属性中的数据进行一些比较。我想将XML属性的数据类型和值存储在一个List<ArrayList<String>>中,因为我的数据的另一面要在ArrayList中进行比较。建议我使用ResultSet从数据库访问,如何在java List<ArrayList<String>>中存储?如何将XML数据从sql server存储到java中的arraylist

在此先感谢。

+0

你能从数据库中获取数据吗? – sForSujit

+0

是的,我可以从数据库中获取数据。 – Ruchita

+0

您可以将其添加到问题中,以便我可以看看 – sForSujit

结果集有getSQLXML()可用于从xml数据类型列中获取XML的方法。使用ResultSetMetaData确认xml数据类型列返回的数据类型。

使用SQLXML接口的getString()方法以字符串的形式获取XML数据,然后使用JAXB将XML转换为POJO。

或者,您可以从SQLXML获取二进制流并使用解析器(如SAX,DOM或StAX解析器)。

+0

对不起.. 谢谢:) – Ruchita

Mysql没有像xml这样的任何数据类型。存储xml最常见的方式是以clob的形式。

ResultSet接口有getClob()方法,通过它可以从数据库中获取xml并使用getSubString方法将其提取为字符串。

使用Jaxb将xml转换为java对象并应用您的比较逻辑。希望这可以帮助。

+0

这个问题是关于sql-server – sForSujit

+0

是的,它是sql服务器。对不起,这是错误的MySQL。我想从sql server中存储这些数据。 – Ruchita