Java:XML转换成数据库,最简单的方法是什么?
我有一堆XML文件和一个XSD 我想简单地将它们转换成POJO,并将它们插入到数据库中。 DB模式在我的控制之下,所以它可以是我喜欢的任何东西 我查看了大量的API,但想了解另一个最有效的方法Java:XML转换成数据库,最简单的方法是什么?,java,xml,hibernate,spring,Java,Xml,Hibernate,Spring,我有一堆XML文件和一个XSD 我想简单地将它们转换成POJO,并将它们插入到数据库中。 DB模式在我的控制之下,所以它可以是我喜欢的任何东西 我查看了大量的API,但想了解另一个最有效的方法 JAXB XMlBeans XPATH到DBUnit hibernate是否有一些api从XSD创建POJO,然后将XML读入这些POJO,然后将数据插入数据库 或者spring是否有任何功能可以帮助实现这一点 我想我只是想听听你的观点,以防万一我错过了一个API,它可以帮助我做我想做的事情 谢谢 J
- JAXB李>
- XMlBeans
- XPATH到DBUnit
Jeff Porter一种常见的方法是使用JPA(即Hibernate)将对象存储到数据库中,使用JAXB(即Metro,(我是技术负责人)或JaxMe)将对象转换为XML EclipseLink JAXB(MOXy)有许多扩展用于将JPA实体映射到XML:
如果以后需要单独查询这些对象,那么映射到JavaPOJO是有意义的。如果您始终需要整个流,而不必查询XML中的值(例如XPath),那么我认为将XML存储为CLOB更有意义。快速回答:JAXB、JPA和Spring 当将XML插入数据库时,需要考虑对XML表示的数据所要执行的操作。 例如,您可以将XML视为输入数据,然后创建一个以易于查询的方式保存数据的架构。如果您希望这样做,那么就使用JAXB作为解组器,因为您可以通过xjc工具从XSD轻松生成带有适当注释的POJO/实体。再添加一点JPA注释,您就有了一个快速的解决方案,可以将XML映射到一个完整的模式,该模式允许各种混合匹配查询和备选视图。当然,JAXB注释可用于生成多种输出格式(XML、JSON、YAML等),因此在输出这些数据时,您不局限于XML
下一步,您可以将XML视为您希望存储的完整实体。在这种情况下,您希望将其存储为CLOB或XML(在Oracle中)。基于XPath的搜索,因此您有机会查询结果数据集
最后,如果您认为XML过于臃肿,并且您可以控制对POJO的任何结果更改,那么您可以将未编组的POJO作为BLOB直接序列化到数据库中。您将拥有一个相当紧凑的模式和数据库,但在查询时会遇到麻烦,因为它都是二进制的。如果必须基于旧POJO对非常旧的数据集进行反序列化,则稍后会出现二进制版本兼容性问题总之,JAXB是处理解组和后续编组过程的一种非常好的方法。它的快速和简单(这里点头)非常好的支持,所以一件事。JPA是执行数据库操作的首选技术。Hibernate是JPA的一个实现者(具有良好的扩展),Spring通过HibernateTemplate漂亮地支持它。同样,您可以使用Spring的JpaTemplate,它的学习曲线可能稍浅一些。您可以选择您的数据库吗?如果是这样,你可以考虑存在DB,这是一个流行的开源XML数据库。+ 1:我会这样做,加上提取选定的字段,并将它们存储为额外的索引列,以便以后我可以进行高速查找。当然,要提取的正确字段将取决于需要的查询类型。