将java对象持久化到xml所需的建议

时间:2010-11-26 16:39:51

标签: java xml hibernate xml-binding

我们正在使用hibernate从oracle数据库加载数据。我需要从其中一个表加载数据,然后将此表中的选定数据存储为另一个表中的xml文件。如果有人可以提出建议,那么实现这一功能的最佳方式会很棒吗?

5 个答案:

答案 0 :(得分:4)

看看这个讨论可以用来将Java对象转换为XML的库(例如JAXB和XStream)的问题。

What is the best way to convert a java object to xml with open source apis

答案 1 :(得分:1)

使用ThougthWorks的Xstream

“XStream是一个简单的库,可以将对象序列化为XML,然后再返回。”

答案 2 :(得分:1)

XMLEncoder (java.beans.XMLEncoder)已经包含在JDK中,使您可以在没有任何外部库或工具的情况下将Java对象持久化到XML。

示例类:

public class Foo {
   private String foo ;

   public void setFoo(String s) {
     foo = s;
   }

   public String getFoo() {
     return foo;
   }
}

要序列化为XML的助手类:

import java.beans.XMLEncoder;
import java.io.*;

public class FooHelper {
    public static void write(Foo f, String filename) throws Exception{
        XMLEncoder encoder =
           new XMLEncoder(
              new BufferedOutputStream(
                new FileOutputStream(filename)));
        encoder.writeObject(f);
        encoder.close();
    }
}

生成的XML:

<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.5.0-beta" class="java.beans.XMLDecoder"> 
 <object class="Foo"> 
  <void property="foo"> 
   <string>bar</string> 
  </void> 
 </object> 
</java>

答案 3 :(得分:1)

如果您使用JPA来保留您的实体,那么请查看您是否可以将提供商切换为EclipseLink。如果可以为您转换same JPA persistent pojos to XML。所以你只需要处理单个库。

答案 4 :(得分:-1)

您可以查看xmlbeans