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 ...
随机推荐
- SQLAchemy、MYSQL、PYMYSQL
什么是数据库? 个人理解:将一些有关系的数据组织在一起,并建立一定规则便于查询.修改.删除我们关系的数据仓库. 常用的数据库:mysql.oracle.sqlserver等. 接下来我们主要讲mysq ...
- 在博文中嵌入Javascript代码
今天吃饭时无聊,突然想到Markdown除了兼容HTML会不会也兼容Javascript,于是博文里除了码文插音乐还可以干点更好玩的事儿了,可以自动修改markdown文件本身,比如说自动修改从Git ...
- C++的学习资源
本文总结了几个好的C++网站,以及C++方面的经典书籍.所列书籍或标准可以到这里找找电子版. wikipedia关于C++有关条目,注意看后面“参考文献”和“外部链接”: C++ programmin ...
- HashMap归档-超越昨天的自己系列
java HashMap 读一下源码,一个数组存储数据: transient Entry[] table; 内部存key和value的内部类: static class Entry<K,V> ...
- 关于cookie 取不到值的问题
当前我们设置cookie时,跨路径的话,我们会取不到设置的cookie的值 我们要添加上path路径的值,就可以啦.(经过验证) path 的设置方法:path=/; function setcook ...
- linux下如何安装webbench
1.上传webbench,解压 2.make&&make install进行安装 如果报没有man1目录,则要用 mkdir -p /usr/local/man/man1 然后 mak ...
- Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色
今天作一个项目,就是做视频app,如果电视剧的话有许多剧集,点击一个item,播放不同的剧集,要有点击效果,并且默认是选择第一个.花费了一段时间,自己觉得有点难 度,现在和大家分享一下,下面是效果显示 ...
- JSON数据;
1.JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 2.JSON的规则很简单: 对象是一个无序的“‘名称/值'对”集合.一个对象以“{”(左括号)开始, ...
- lnmp无法删除目录,目录包含.user.ini
无法删除".user.ini"文件解决方法,运行后删除即可 chattr -i /home/wwwroot/yoursite/.user.ini 如果是需要修改文件,记得修改完以后 ...
- RET2LIBC 练习(3) -- VIRTUALALLOC
国庆假期没事做了几道pwn题练手,等有时间在贴出pwn题的分析. 利用VIRTUALALLOC的方法绕过DEP其实和之前的方法大同小异了,只是VIRTUALALLOC开辟了一段新的可执行的内存空间,然 ...