Java生成XML文件
我们在数据库中的数据可以将其提取出来生成XML文件,方便传输。例如数据库中有Admin这张表:

我们写一个java类表示admin数据:
package xmlDom.vo; import java.io.Serializable;
import java.util.Date;
import java.util.List; public class Admin implements Serializable
{
private String aid;
private String password;
private Integer rid;
private Integer type;
private Date lastdate;
private Integer flag ; public Integer getRid()
{
return rid;
}
public void setRid(Integer rid)
{
this.rid = rid;
}
public String getAid()
{
return aid;
}
public void setAid(String aid)
{
this.aid = aid;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public Integer getType()
{
return type;
}
public void setType(Integer type)
{
this.type = type;
}
public Date getLastdate()
{
return lastdate;
}
public void setLastdate(Date lastdate)
{
this.lastdate = lastdate;
}
public Integer getFlag()
{
return flag;
}
public void setFlag(Integer flag)
{
this.flag = flag;
} }
然后通过JDBC 将表中的数据转换成一个链表:
package xmlDom.dbc; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class DatabaseConnection
{
private static final String MYSQLDRIVER = "org.gjt.mm.mysql.Driver";
private static final String MYSQLURL = "jdbc:mysql://localhost:3306/hrdb";
private static final String USERNAME = "root";
private static final String PASSWORD = "admin"; private Connection conn; public DatabaseConnection()
{
try
{
Class.forName(MYSQLDRIVER);
this.conn = DriverManager.getConnection(MYSQLURL, USERNAME, PASSWORD);
} catch (Exception e)
{
e.printStackTrace();
}
} public Connection getConnection() throws Exception
{
if (null != this.conn)
return this.conn;
else
throw new Exception("获取数据库连接失败");
} public void close()
{
if (null != this.conn)
{
try
{
this.conn.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
public static List<Admin> loadFromDB() throws Exception
{
List<Admin> allAdmins = new ArrayList<Admin>(); DatabaseConnection dbc = new DatabaseConnection();
Connection conn = dbc.getConnection();
PreparedStatement ps = conn.prepareStatement("SELECT aid,rid,type,lastdate,flag FROM admin");
ResultSet rs = ps.executeQuery();
while(rs.next())
{
Admin vo = new Admin(); vo.setAid(rs.getString("aid"));
vo.setRid(rs.getInt("rid"));
vo.setType(rs.getInt("type"));
vo.setLastdate(rs.getDate("lastdate"));
vo.setFlag(rs.getInt("flag")); allAdmins.add(vo);
} return allAdmins;
}
然后将该链表转换成内存中的XML结构:
public static Document getDocument( List<Admin> allAdmins) throws Exception
{
DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = dbfactory.newDocumentBuilder();
Document document = documentBuilder.newDocument(); Element root = document.createElement("admins"); for(Admin item : allAdmins)
{
Element admin = document.createElement("admin");
admin.setAttribute("aid", item.getAid()); Element rid = document.createElement("rid");
rid.appendChild(document.createTextNode(String.valueOf(item.getRid()))); Element type = document.createElement("type");
type.appendChild(document.createTextNode(String.valueOf(item.getType()))); Element lastdate = document.createElement("lastdate");
lastdate.appendChild(document.createTextNode(String.valueOf(item.getLastdate()))); Element flag = document.createElement("flag");
flag.appendChild(document.createTextNode(String.valueOf(item.getFlag()))); admin.appendChild(rid);
admin.appendChild(type);
admin.appendChild(lastdate);
admin.appendChild(flag); root.appendChild(admin);
} document.appendChild(root); return document;
}
然后将该内存的XML保存到本地中:
public static void main(String[] args) throws Exception
{
List<Admin> allAdmins = loadFromDB();
Document document = getDocument(allAdmins); Source source = new DOMSource(document);
StreamResult stream = new StreamResult(new FileOutputStream(new File("C:\\D\\code\\resource\\admins.xml")));
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer trans = transFactory.newTransformer();
trans.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
trans.transform(source, stream); System.out.println("main done//~~");
}
也可以用下面代码把xml文件加载到内存中:
public static Document loadFromFile(String path) throws Exception
{
Document document = null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(new File(path));
return document;
}
Java生成XML文件的更多相关文章
- java 生成xml文件
这里也使用的是import org.w3c.dom.Document; 首先创建document对象,给该对象赋值,然后将document对象使用transformer的transformer转换方法 ...
- Java生成XML文件与XML文件的写入
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6651643.html 既然能在代码中解析XML文档获取数据,当然也能通过代码动态生成XML文档了. 与解析X ...
- 利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析
首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) ...
- Java&Xml教程(四)使用DOM方式生成XML文件
在前面的教程中,我们学习了使用DOM解析方式读取和修改XML文件内容,今天我们来学习如何使用DOM解析机制生成XML文件. 下面是我们对要生成的XML文件的具体要求: 1.根节点元素为"Em ...
- java 编程基础:注解(Annotation Processing Tool)注解处理器 利用注解解读类属性生成XML文件
APT的介绍: APT(Annotation Processing Tool)是一种注解处理工具,它对源代码文件进行检测,并找出源文件所包含的注解信息,然后针对注解信息进行额外的处理. 使用APT工具 ...
- Java中使用DOM4J来生成xml文件和解析xml文件
一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...
- Android 使用xml序列化器生成xml文件
在<Android 生成xml文件>一文中使用流的形式写入xml格式文件,但是存在一定的问题,那就是在短信内容中不能出现<>之类的括号,本文使用xml序列化器来解决 xml序列 ...
- Java 创建xml文件和操作xml数据
java中的代码 import java.io.File; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; ...
- java 读取XML文件作为配置文件
首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...
随机推荐
- android 数据下载 工具类
传入图片地址,获得服务器返回的流. 把流转化为byte[]数组
- python、matlab、c++的括号增加次序,以及图片存储方式
1 增加次序: python:(同c++多维数组) np.zeros([2,3,4]),先是按照内存空间均分为2份,每份又均分3份,最终再细分4份 2最大份,先按左分 例子:re ...
- sql server 里类似replace的字符串子串删除
做如下替换: 将字符串asd#sdf#sdfsf中含# …# 形式的子串删除,写出sql语句 sql语句如下: UPDATE MM SET name =substring(name,0,CHAR ...
- 备受SQL青睐的“1”
写在前面:所用sql语句皆是在oracle 11g r1 数据库中实验. 在sql书写中,经常会用到数字1,例如 count(1),select 1, where 1=1等等,这样做有何好处呢?下面我 ...
- thinkphp3.2.3分页
View <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- JDBC使用事务实例
package qddx.JDBC; import java.sql.*; public class useTransaction { public static void main(String[] ...
- bootstrap-16
进度条----基本样式: Bootstrap框架中对于进度条提供了一个基本的样式,一个100%宽度的背景色,然后高亮颜色表示完成进度.其实制作这样的进度条非常容易,一般是使用两个容器,外容器具有一定的 ...
- Opencv-Python 学习
加载一个灰度图,显示图片,按下’s’键保存后退出,或者按下 ESC 键退出不保存. import numpy as np import cv2 img = cv2.imread('linux.png' ...
- 【OpenGL】 第一篇 OpenGL概览
---------------------------------------------------------------------------------------------------- ...
- sokite
<?php interface Proto { //连接 function conn($url); //发送get请求 function get(); //发送post请求 function p ...