读取数据库中的数据到xml  java

第一步下载jar包
crimson.jar
第二步()
注意sql 语句 以及生成位置 本单元测试生成在src下
package com.test.xml;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.apache.crimson.tree.XmlDocument;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.xml.sax.SAXException;

public class schemeXml
{
static Connection conn=null;
static String sql;
public static void main(String[] args)
{
try
  //链接数据库,取得数据
   //Class.forName("oracle.jdbc.driver.OracleDriver");//oracle数据库
Class.forName("com.mysql.jdbc.Driver");//mysql数据库

conn=DriverManager.getConnection("jdbc:mysql://192.168.1.109/cpsad?user=root&password=admin&useUnicode=true&characterEncoding=UTF-8");
   Statement st=conn.createStatement();
   ResultSet rs=st.executeQuery("select * from user");
 
   DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
   DocumentBuilder builder=factory.newDocumentBuilder();
   Document doc=builder.newDocument();
 
   Element comp=doc.createElement_x_x("COMP");
 
   while(rs.next())
   {
    Element person=doc.createElement_x_x("PERSON");
  
    Element deptno=doc.createElement_x_x("DEPTNO");
    deptno.a(doc.createTextNode(String.valueOf(rs.getInt(1))));
    person.a(deptno);
  
    Element dname=doc.createElement_x_x("DNAME");
    dname.a(doc.createTextNode(new schemeXml().xmlReplace(rs.getString(2))));
    person.a(dname);
  
    Element loc=doc.createElement_x_x("LOC");
    loc.a(doc.createTextNode(new schemeXml().xmlReplace(rs.getString(3))));
    person.a(loc);
    comp.a(person);
   }
   rs.close();
   st.close();
   conn.close();
 
   doc.a(comp);
 
   ((XmlDocument)doc).write(new FileOutputStream("src/dept.xml"));
 
   System.out.println("操作成功!!!");
}catch(ClassNotFoundException e)
{
   e.printStackTrace();
}catch(SQLException e1)
{
   e1.printStackTrace();
}catch(ParserConfigurationException e2)
{
   e2.printStackTrace();
}catch(FileNotFoundException e3)
{
   e3.printStackTrace();
}catch(IOException e4)
{
   e4.printStackTrace();
}
}
public String xmlReplace(String value){
   System.out.println("value---old"+value);
   //value=value.replace("&", "&");
//   value=value.replace("<", "&lt;");
//   value=value.replace(">", "&gt;");
//   value=value.replace("'", "&apos;");
   value=value.replace( "&lt;","<");
   value=value.replace( "&gt;",">");
   value=value.replace( "&apos;","'");
// value.replace("""", "&quot;");
   System.out.println("value---new"+value);
    return value;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值