输入sql语句,将结果写入到xml文件
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("在途"));
}
}