一个实例 楼主参考!
package com.xh.xml;
 
import java.io.FileOutputStream;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.output.XMLOutputter;
 
public class Java2XML {
 
    public void BuildXMLDoc() throws IOException, JDOMException {
 
       // 创建根节点 list;
        Element root = new Element("list");
       
       // 根节点添加到文档中;
        Document Doc = new Document(root);
 
       // 此处 for 循环可替换成 遍历 数据库表的结果集操作;
       for (int i = 0; i < 5; i++) {
           
           // 创建节点 user;
           Element elements = new Element("user");
           
           // 给 user 节点添加属性 id;
           elements.setAttribute("id", "" + i);
           
           // 给 user 节点添加子节点并赋值;
           // new Element("name")中的 "name" 替换成表中相应字段,setText("xuehui")中 "xuehui 替换成表中记录值;
           elements.addContent(new Element("name").setText("xuehui"));
           elements.addContent(new Element("age").setText("28"));
           elements.addContent(new Element("sex").setText("Male"));
 
           // 给父节点list添加user子节点;
           root.addContent(elements);
 
       }
        XMLOutputter XMLOut = new XMLOutputter();
       
       // 输出 user.xml 文件;
        XMLOut.output(Doc, new FileOutputStream("user.xml"));
    }
 
    public static void main(String[] args) {
       try {
           Java2XML j2x = new Java2XML();
           System.out.println("生成 mxl 文件...");
           j2x.BuildXMLDoc();
       } catch (Exception e) {
           e.printStackTrace();
       }
    }
 
}
 
 
生成的 user.xml  文件
 
<?xml version="1.0" encoding="UTF-8"?>
<list>
    <user id="0">
        <name>xuehui</name>
        <age>28</age>
        <sex>Male</sex>
    </user>
    <user id="1">
        <name>xuehui</name>
        <age>28</age>
        <sex>Male</sex>
    </user>
    <user id="2">
        <name>xuehui</name>
        <age>28</age>
        <sex>Male</sex>
    </user>
    <user id="3">
        <name>xuehui</name>
        <age>28</age>
        <sex>Male</sex>
    </user>
    <user id="4">
        <name>xuehui</name>
        <age>28</age>
        <sex>Male</sex>
    </user>
</list>
 

解决方案 »

  1.   

    hibernate不是有源代码吗?建议阅读其源代码!
      

  2.   

    给你个思路,如果你是oracle,可以自动生成,如果是sqlserver也可以,但具体怎么弄,忘记了,
    如果是用程序来写,1,从数据库拿数据,做树,做节点,做属性字段,分别把你需要的值放到树里边。在用io保存在本机上
      

  3.   

    3楼已经吧xml操作说的很清楚了。
    剩下的就是得到表的信息:
    ......
    PreparedStatement ps = conn.prepareStatement("select * from etl.letter where id=?");
    ......
    ResultSetMetaData m = ps.getMetaData();
    m.getColumnCount();//得到列数目
    m.getColumnName(column);//得到列名
    m.getColumnType(column);//得到类型
    m.getPrecision(column);//得到精度
    m.getScale(column);//得到范围
    还有其他得到catalog, schema等等, 都有。
      

  4.   


    不用这个可以吗
    我初步这样写的
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    // TODO Auto-generated method stub
            List list=new ArrayList();
            Session session=HibernateSessionFactory.getSession();
    Transaction tr=session.beginTransaction();
    tr.commit();
     
    String statement = "from User";
    list = session.createQuery(statement).list();
        
        Element user;
        Element username;
        Element password;
        Iterator iterator=list.iterator();
        DocumentBuilderFactory documentbuilderfactory = DocumentBuilderFactory.newInstance();
        try{        
           DocumentBuilder docBuilder = documentbuilderfactory.newDocumentBuilder();
           Document doc = docBuilder.newDocument();
           Element rootElement = doc.createElement("USER");
           while(iterator.hasNext()){
          user = doc.createElement("user");
          user.setAttribute("userid",iterator.next().toString());
          System.out.println(iterator.next().toString());
             rootElement.appendChild(user);          username = doc.createElement("username");
             username.appendChild(doc.createTextNode(iterator.next().toString()));
             user.appendChild(username);          password = doc.createElement("password");
             password.appendChild(doc.createTextNode(iterator.next().toString()));
             user.appendChild(password);         
           }
           doc.appendChild(rootElement);
           //格式化XML 文档
           OutputFormat outformat = new OutputFormat(doc);
           //通过输出流创建XML
           OutputStream os = new FileOutputStream("c:\\cdn\\xml\\DbToXml.xml");
           // 通过XMLSerializer 生成XML 文档
           XMLSerializer xmlserilizer = new XMLSerializer(os,outformat);
           // 对文件进行写操作.
           xmlserilizer.serialize(doc);     }catch(Exception ex){
            ex.printStackTrace();
        }
      
     
     
    return mapping.findForward("success");
    }能生成.XML文件 
    但是结果是
    <?xml version="1.0" encoding="UTF-8"?>
    <USER><user userid="com.sh.hibernate.User@150f1d6"><username>com.sh.hibernate.User@1070a02</username><password>com.sh.hibernate.User@1223b12</password></user></USER>
      

  5.   

    看了半天不明白, 莫非楼主想把用Hibernate取得的数据对象写成xml? 我还以为你想研究hibernate插件是怎么工作的呢。
    那还不简单么?
    比如你的表是user,对应的pojo是User,
    String statement = "from User"; 
    list = session.createQuery(statement).list(); 
    那么这个list装的都是一个一个的User对象,那还不简单么? 给User对象添加一个toXMLString()方法:public class User{
    String userId;
    String name;
    String password;
    ......
    public String toXMLString(){
      StringBuffer buffer = new StringBuffer();
      buffer.append("<?xml version\1.0\" encoding=\"UTF-8\"?>")
      .append("<USER>")
      .append("<userid>").append(userId).append("</userid>")
      (省略好多);
     return buffer.toString();
    }
    }然后在你的execute方法里面new 一个文件, 把这个User对象toXMLString()然后写入文件不久可以了?