输入sql语句,将结果写入到xml文件

import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

/*
 * @ author Roger
 * @date 2016/5/3
 * @description 输入sql语句,将结果写入到xml文件。文件格式按数据库的字段名,字段值格式。
 * */
public class pXML {
    public static void main(String args[]) throws Exception{
        Connection conn = null;
        String sql;
        String url = "jdbc:mysql://localhost:3306/test?"
                + "user=root&password=root&useUnicode=true&characterEncoding=UTF8";
        try{
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("成功加载MySQL驱动程序");
            conn = DriverManager.getConnection(url);
            Statement stmt = conn.createStatement();
            sql = "select * from people";
            ResultSet rs = stmt.executeQuery(sql);
            System.out.println("查询人员资料:");

            DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            Document doc = builder.newDocument();
            Element root = doc.createElement("Info");
            doc.appendChild(root);

            while(rs.next()){
                Element people = doc.createElement("People");
                System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3) + "\t" + rs.getString(4));
                Element no = doc.createElement("no");
                no.appendChild(doc.createTextNode(rs.getString(1)));
                people.appendChild(no);
                Element name = doc.createElement("name");
                name.appendChild(doc.createTextNode(rs.getString(2)));
                people.appendChild(name);
                Element sex = doc.createElement("sex");
                sex.appendChild(doc.createTextNode(rs.getString(3)));
                people.appendChild(sex);
                Element age = doc.createElement("age");
                age.appendChild(doc.createTextNode(rs.getString(4)));
                people.appendChild(age);
                root.appendChild(people);
            }
            TransformerFactory tf = TransformerFactory.newInstance();
            try{
                Transformer t = tf.newTransformer();
                t.setOutputProperty(OutputKeys.INDENT,"yes");
                t.setOutputProperty(OutputKeys.METHOD,"xml");
                t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount","2");
                t.transform(new DOMSource(doc),new StreamResult(new FileOutputStream("d:\\sql.xml")));  //执行上面的设置并且输出到文件中
                System.out.println("生成XML文件成功!");
            }catch(Exception e){
                e.printStackTrace();
            }
        }catch(SQLException e){
            System.out.println("MySql操作错误");
            e.printStackTrace();
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            conn.close();
        }
    }
}
时间: 2024-11-10 10:48:34

输入sql语句,将结果写入到xml文件的相关文章

PL/SQL Developer中输入SQL语句时如何自动提示字段

在PL/SQL Developer中编写sql语句时,如果无法自动提示字段那是一件痛苦的事情,工作效率又低,在此演示下如何在PL/SQL Developer工具中自动提示字段,让开发者省时又省心,操作步骤如下:tools–>preferences–>user interface–>code assistant–>在右边选中authomatically activated即可,如 PL/SQL Developer中输入SQL语句时如何自动提示字段,布布扣,bubuko.com

【Access2007】修改数据库密码与输入SQL语句进行查询

Access是个不入流的数据库,之所以说他不入流是因为其兼容性,大小等都未达到软件运营的要求, 但是某些项目对方要求必须以Access作为数据库,你也是不得不对此了解. Access是个完全图形化操作的数据库,程序猿出来刚到会对此很不适应. 因为你不知道怎么修改数据库密码--这还是其次,你根本找不到哪个部分给你输入SQL语句操作数据. 毕竟对于程序猿来说,能输入代码操作计算机才是最重要的. 一.修改Access2007数据库密码 左上角有打开Access数据库的按钮,就像你在word中打开.do

PHP如何通过SQL语句将数据写入MySQL数据库呢?

1,php和MySQL建立连接关系 2,打开 3,接受页面数据,PHP录入到指定的表中 1.2两步可直接使用一个数据库链接文件即可:conn.php <?phpmysql_connect("localhost","root","");//连接MySQLmysql_select_db("hello");//选择数据库?> 当然,前提是已经安装WEB服务器.PHP和MySQL,并且建立MySQL表“webjx” mys

oracle 存储过程执行可输入sql语句并返回结果集

1.建立测试表: create table AAA ( aa NVARCHAR2(100), bb NVARCHAR2(100), cc NVARCHAR2(100), dd NVARCHAR2(100) ) 并导入测试数据insert into aaa values('1','1','1','1'); 2.测试可行性: DECLARE v_cursor NUMBER; v_stat NUMBER; aa VARCHAR(100); bb VARCHAR(100); cc VARCHAR(100

7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml

 数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDefault.xml.所有的key皆为char *型,value类型为bool intfloat double std::string. 读操作 bool getBoolForKey(const char* pKey); bool getBoolForKey(const char* pKey, bool

使用js 读取excl中的内容并写入到xml文件中

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

【sql server inject】使用动态查询执行sql语句实例

应某少年要求授权测试一个存在报错注入点的站点,可读取数据库名,但是sqlmap执行–os-shell选项就会莫名当掉: 分步骤测试了几次,发现xp_cmdshell是开启状态,但用sqlmap注入却无法利用XP_cmdshell执行命令? 正好最近在读[SQL注入攻击与防御],感觉这真是一个值得实践的好目标! 为了简化测试步骤,所以文章分为5次进行记录: 0x1 sqlmap常用语句测试 测试1目的:执行cmd命令 测试1结果,测试初期无法连接: ------------------------

oracle学习笔记 SQL语句执行过程剖析讲课

oracle学习笔记 SQL语句执行过程剖析讲课 这节课通过讲述一条SQL语句进入数据库 和其在数据库中的整个的执行过程 把数据库里面的体系结构串一下. 让大家再进一步了解oracle数据库里面的各个进程.存储结构以及内存结构的关联关系. 首先来讲整个体系中有客户端.实例和数据库 数据库里有三类文件 控制文件ctl.数据文件dbf.日志文件log 实例中SGA有六大池子 第一大内存区shared pool即共享池 第二大内存区buffer cache 第三块是redo log 我们主要讲上面的三

SSIS高级转换任务—执行SQL语句

下面的随笔中将讲述SSIS中的高级转换任务,和老旧的SQL Server 2000 DTS相比,我们会发现现在以前的dark-arrow,data-pump任务没有了.在转换任务中隐藏ActiveX脚本和嵌入连接字符的方法也被去除了.在将Package指向不同的数据库的时候也不会忘记修改转换对象,在修改对象连接的时候也一样.现在新建全局连接.转换任务可以被更加容易的管理,使用便捷界面可以浏览任务的设计界面并修改属性. 在使用SSIS package的时候,有些时候需要避免一些过度依赖的情况.没有