java xml mysql_JAVA中 XML与数据库互转 学习笔记三

importjava.io.File;importjava.io.FileOutputStream;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.parsers.ParserConfigurationException;importjavax.xml.transform.Transformer;importjavax.xml.transform.TransformerFactory;importjavax.xml.transform.dom.DOMSource;importjavax.xml.transform.stream.StreamResult;importorg.w3c.dom.Document;importorg.w3c.dom.Element;importorg.w3c.dom.Node;public classDatabaseToXMLWithDom {public voidtoXML(){/*** 讲数据记录存入到数组中*/String[] number={""};

String[] name={""};

String[] date={""};

String[] height={""};

Connection connection=null;

PreparedStatement statement=null;

ResultSet rs=null;

connection=JDBCUtilSingle.getInitJDBCUtil().getConnection();

String sql="SELECT * FROM `student` ";try{

statement=connection.prepareStatement(sql);

rs=statement.executeQuery();

rs.last();//讲游标移到结果集的最后一行

int recordAmount=rs.getRow(); //获取记录数据

number=newString[recordAmount];

name=newString[recordAmount];

date=newString[recordAmount];

height=newString[recordAmount];int k=0;

rs.beforeFirst();//讲游标移到第一条记录前

while(rs.next()){

number[k]=rs.getString(1);

name[k]=rs.getString(2);

date[k]=rs.getString(3);

height[k]=String.valueOf(rs.getDouble(4));

k++;

}

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}finally{

JDBCUtilSingle.getInitJDBCUtil().closeConnection(rs, statement, connection);

}/*** 将数据导入到XML文件*/DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();

factory.setIgnoringElementContentWhitespace(true); //忽略空白缩进

DocumentBuilder domParser;try{

domParser=factory.newDocumentBuilder();

Document document=domParser.newDocument(); //通过调用newDocument() 方法获取实例

document.setXmlVersion("1.0"); //设置 xml版本号

Element root=document.createElement("学生信息");

document.appendChild(root);for(int k=0;k

Node student=document.createElement("学生");

root.appendChild(student);

Node xuehao=document.createElement("学号");

xuehao.appendChild(document.createTextNode(number[k]));

Node xingming=document.createElement("姓名");

xingming.appendChild(document.createTextNode(name[k]));

Node chusheng=document.createElement("出生日期");

chusheng.appendChild(document.createTextNode(date[k]));

Node shenggao=document.createElement("身高");

shenggao.appendChild(document.createTextNode(height[k]));

student.appendChild(xuehao);

student.appendChild(xingming);

student.appendChild(chusheng);

student.appendChild(shenggao);

TransformerFactory transFactory=TransformerFactory.newInstance(); //工厂对象获取transFactory实例

Transformer transformer=transFactory.newTransformer(); //获取Transformer实例

DOMSource domSource=newDOMSource(document);

File file=new File("newXML2.xml");

FileOutputStream out=newFileOutputStream(file);

StreamResult xmlResult=newStreamResult(out);

transformer.transform(domSource, xmlResult);

out.close();

}

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}/***@paramargs*/

public static voidmain(String[] args) {//TODO Auto-generated method stub

newDatabaseToXMLWithDom().toXML();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值