XML 文档以其平台无关性、自描述性、统一标准、多语言支持等优势得到越来越多的应用,由于目前大多数平台和语言对XML都有很好的支持,因此在不同系统之间进行数据交互时XML能充分发挥其优势,但XML主要是用于临时传输数据,这些数据最终还是要保存到数据库系统,因此能用统一的方法将XML格式数据方便地保存到数据库中可极大简化程序开发。
如果对每种XML文件都去解析然后用SQL写入数据库,其工作量会随XML数量的增多而急剧增加,并且维护困难。 另外一种方法是将XML文件先转化为对象,然后利用O/R mapping工具将对象写入数据库,这种方法不足在于XML转为对象和对象映射到数据库都要维护映射文件,这些映射文件需要仔细维护其和数据库结构的一致性,变更很不方便,一不小心就回发生错误。并且由XML到对象,对象再到数据库,其运行效率也大打折扣。
要解决这个问题,可利用XML的自描述性,在包含入库数据的XML文档中加入数据库结构信息,避免使用另外的映射文件来描述数据库结构。当数据库结构变化时,只要修改生成XML文档的程序。另外,XML数据直接解析入库,没有转为对象的过程,运行效率会更高。
基于这个思路,开发了一个XML和数据库之间的映射工具myXDM,用来将XML保存到数据库或从数据库中查询数据保存为XML文档。
该工具的特点如下:
- 对XML文档格式要求不高,现有的的XML处理程序都能很容易生成该工具能处理的XML文档。
- 支持在一个XML文档中包含多个表的数据,表之间可以是主从关系,主从关系可以嵌套,也可以完全没有关系。
- 支持大部分可用JDBC访问的数据库。
- 支持大尺寸数据字段(BLOB,CLOB)。
- 支持表级、记录级事务控制。
更多的信息可下载该工具参考试用,下载地址:
http://sourceforge.net/projects/myxdm