您的当前位置:首页正文

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

2023-11-10 来源:骅佗教育

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) + "" + rs.getString(2) + "" + rs.getString(3) + "" + 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(); } }}

 

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

标签:

小编还为您整理了以下内容,可能对您也有帮助:

怎么能用SQL语句把查询结果转换给定格式的XML文件

在oracle中提供了许多内置的程序包,它们用于扩展数据库的功能。在开发应用程序时,可以利用这些程序包。数据库用户sys拥有oracle提供的所有程序包。他们被定义为共有同义词,并将执行权限授予了public用户组,任何用户都可以访问它们。其中DBMS_XMLQUERY包用于将查询结果转换为XML格式,DBMS_LOB程序包包含雨处理大型对象的过程和函数。下面我们看一下DBMS_XMLQUERY和DBMS_LOB的用法:
SQL> DECLARE
result CLOB;
xmlstr VARCHAR2(32767);
line VARCHAR2(2000);
line_no INTEGER :=1;

怎么能用SQL语句把查询结果转换给定格式的XML文件

在oracle中提供了许多内置的程序包,它们用于扩展数据库的功能。在开发应用程序时,可以利用这些程序包。数据库用户sys拥有oracle提供的所有程序包。他们被定义为共有同义词,并将执行权限授予了public用户组,任何用户都可以访问它们。其中DBMS_XMLQUERY包用于将查询结果转换为XML格式,DBMS_LOB程序包包含雨处理大型对象的过程和函数。下面我们看一下DBMS_XMLQUERY和DBMS_LOB的用法:
SQL> DECLARE
result CLOB;
xmlstr VARCHAR2(32767);
line VARCHAR2(2000);
line_no INTEGER :=1;

SQL2008如何用作业将查询结果导出,以及作业导入XML文件

1、打开 SQL server企业管理器,新建查询,在窗口中输入查询语句并执行。

2、全选查询的结果,选择“连同标题一起复制”,然后打开EXCEL,新建Excel表格,进行粘贴即可。

3、或者在全选查询结果之后,直接选择“将结果另存为”,选择对应的保存格式。

4、如果要自动实现这一过程,需要自行编写程序,连接SQL数据库,查询,保存查询数据到指定格式的文件中。追问大虾,我需要的是自动,你给我手动复制。不是我想要的,不过还是谢了

在xml文件中插入sql语句

public class XMLTest

{

private Hashtable<String, String> hashtable;

private Vector sqlv=new Vector(); //用来存放Hashtable

public Hashtable getSQL(){

hashtable=new Hashtable<String, String>();

try{

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();

DocumentBuilder db=dbf.newDocumentBuilder();

//path得到的值为 D:\tomcat5520\bin 即%tomcat%\bin目录

String path=System.getProperty("user.dir");

System.out.println("在XMLTest.java文件中打印user.dir的值为--"+path);

int pos=path.lastIndexOf("\\");

//下面这条语句得到的是 目录%tomcat%

path=path.substring(0,pos);

Document doc=db.parse(path+"/webapps/WebRoot/WEB-INF/sql-config.xml");

Element root=doc.getDocumentElement();

NodeList list=root.getElementsByTagName_r("sql-info");

for(int i=0;i<list.getLength();i++){

//得到第i个sql-info节点元素

Element name=(Element)list.item(i);

//在当前的sql-info节点中 取出所有的sql-name对应的节点

NodeList info=name.getElementsByTagName_r("sql-name");

//在当前当前的sql-info节点中 得到sql-name的多个节点,始终只取其中的第一个节点

Element nameelement=(Element)info.item(0);

//在当前当前的sql-info节点中 得到sql-name的多个节点,始终只取其中的第一个节点sql-name对应的文本的值

String namestr=nameelement.getFirstChild().getNodeValue();

//在当前的sql-info节点中 取出所有的sql-value对应的节点

NodeList sql=name.getElementsByTagName_r("sql-value");

//在当前当前的sql-info节点中 得到sql-value的多个节点,始终只取其中的第一个节点

Element sqlelement=(Element)sql.item(0);

//在当前当前的sql-info节点中 得到sql-value的多个节点,始终只取其中的第一个节点sql-value对应的文本的值

String sqlstr=sqlelement.getFirstChild().getNodeValue();

// System.out.println("sql语句为:"+sqlstr);

hashtable.put(namestr,sqlstr); //放入到Hashtable中

}

}catch(Exception e){

System.out.println("读取sql-config.xml "+e.getMessage());

}

return hashtable;

}

public void addHashtable(){

if(sqlv==null)

sqlv=new Vector();

Hashtable ht=getSQL(); //得到配置文件的Hashtable

sqlv.add(ht);

}

public Hashtable getHashtable(){

Hashtable ht=null;

if(sqlv==null)

sqlv=new Vector();

if(sqlv.isEmpty()){

addHashtable();

}

ht=(Hashtable)sqlv.get(0);

return ht;

}

public static void main(String[] args) throws Exception

{

XMLTest xt=new XMLTest();

Hashtable ht=xt.getSQL();

System.out.println(ht.get("在途"));

}

}