我将在Java EE应用程序中开发数据库导入/导出功能。
我计划使用XML绑定解决方案在Java对象和XML文件之间进行转换,这是导入/导出文件。
导入功能:在内存表示中将XML文件解组为Java对象,然后使用JDBC更新数据库。
导出功能:反转导入过程。将数据库检索到Java对象并将对象编组为XML。
我认为它可以正常工作,但不够灵活。由于XML的XSD是预定义的,因此无法在运行时更改XML模式和Java对象定义。说它是动态绑定。即使我希望该功能支持其他文件格式(如果格式在这个阶段太远,你可能会忘记它。)
您对该功能有何建议?谢谢!
答案 0 :(得分:2)
我不知道这是否是正确答案,但无论如何它都有帮助: 我使用了Spring,Hibernate,JAXB,您可以使用jaxb注释来注释数据库实体类及其元素,并且不需要编写任何xml架构文件。在春天你可以使用jaxb Marshaller。
我认为纯jaxb也应该可以,所以你可以查看jaxb注释。
答案 1 :(得分:1)
我认为它可以正常工作,但事实并非如此 足够灵活。因为XSD的 XML是预先定义的,它是不可能的 更改XML架构和Java对象 运行时定义
如果您认为它不够灵活,请使用数据交换格式,这样可以使您免受所有这些固定模式定义的影响(我知道甚至JSON都有模式规范,但您明白了这一点)。使用JSON是否可以接受?
我认为如果“导入数据库”和“从数据库导出”是唯一的要求,你甚至不需要为此创建Java对象。只需传入一个包含模式的JSON字符串,该模式随后将由直接与DAO层接口的JSON处理器处理。与从数据库中读取的数据类似。缺点是JSON中的“日期”支持充其量只是参差不齐。
想想看,它不一定是JSON。您可以查看Apache Avro等其他数据序列化格式。但话说回来,如果XML是您无法更改的要求,那么您可以使用模式来解决而不是的“灵活性限制”。
毕竟,XML就像暴力。如果它没有解决你的问题,你就没有使用它。 : - )