实现往返接收XML文件并最终使用Java将数据保存到数据库的最佳方法是什么?目前我有:
1. XML Schema& XML数据文件发送给我
- XSD相当复杂,属于外部派对,所以我无法改变它
2.创建Java类
- JAXB生成超过150个类,遗憾的是模式可以更改
- 我使用Maven POM来自动化这个过程
3.将XML数据文件解组为Java对象(使用JAXB注释)
- 数据将显示给用户进行操作
4.将Java对象保留为RDBMS(Oracle / MySQL)
- 似乎JDO是最合适的解决方案
5.导出数据
- 数据可以再次导出为XML或Excel(例如)
我找不到合适的方法将JDO元数据或注释添加到Java源代码(在JAXB过程中生成),以确保我可以持久化Java类。我正在使用以下技术:
- Java,Maven,JAXB,JDO& JDBC
我认为DataNucleus最适合,因为我可能需要在具有不同导出目标的环境之间更改数据存储(RDBMS / XML / Excel)。我可能需要考虑的另外两项技术是: - Spring和XDoclet
建议或指向教程的指针
答案 0 :(得分:1)
实施a的最佳方式是什么? 用于接收XML文件和的往返 最终将数据持久化 使用Java的数据库。
为此,我将使用JAXB和JAXB的组合。注意:我领导EclipseLink JAXB (MOXy),EclipseLink也提供了出色的JPA implementation。
目前我有:
1 - XML Schema& XML数据文件发送给我
- XSD相当复杂,属于外部派对,所以我可以 不改变它
选项#1 - 从XML Schema开始
选项#2 - 从Java类开始
2 - 创建了Java类
- JAXB生成超过150个类,遗憾的是架构可以更改
- 我使用Maven POM来自动化流程
如果XML架构发生更改,您始终可以重新生成模型,或者根据需要注释模型以处理对XML架构的修改。
您可能会发现HyperJAXB项目很有用,因为我相信它会在JAXB模型上生成JPA注释。
3 - 解组XML数据 将文件转换为Java对象(使用JAXB 注解)
- 数据将显示给用户进行操作
这只是普通的JAXB用法。有关示例,请参阅:
4 - 将Java对象保留为 RDBMS(Oracle / MySQL)
- 似乎JDO是最合适的解决方案
JPA是另一种选择。
5 - 导出数据
- 数据可以再次导出为XML或Excel(例如)
这也是获取XML输出的正常JAXB用法。
答案 1 :(得分:0)
在数据库中存储JAXB从不断发展的XML模式生成的Java对象的实例没有多大意义,恕我直言。关系数据库的目标是以明确定义的关系结构存储数据,以便能够轻松地查询它。
如果你想要的只是能够获得之前收到的XML文档,那么只需将它作为clob存储在某个表或文件系统中。
如果确实需要以结构化方式将数据存储在数据库中,那么首先设计数据库模式,然后设计映射此数据库模式所需的JDO类,并实现将JAXB对象转换为JDO对象所需的业务逻辑为了将它们存储在数据库中。
但在考虑您想要使用的技术之前,我会考虑更多关于您想要实现的功能。