java鏈接oracle數據庫的時候, 須要從特定地方讀取xml文件中的sql去get結果集,java
xml文件放在和java文件: SqlLoaderFromXML的目錄下OracleSQL, xml文件名:Product.xml,node
<?xml version="1.0" encoding="GB2312"?>
<SQLSTRING>sql
<Products>
select distinct productid
from table_product_list
</Products>
</SQLSTRING>數據庫
java sample以下:oracle
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Iterator;
import java.util.List;dom
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;.net
public class SqlLoaderFromXML {xml
private static String sqlPath = "./OracleSQL/";
private static String sqlFile = sqlPath + "Product.xml";
get
public static String loadSqlFromXml(String xmlFile, String xpath) throws FileNotFoundException, DocumentException {input
InputStream input = new FileInputStream(xmlFile);
SAXReader saxReader = new SAXReader(false);
Document sqlDoc = saxReader.read(input);
Node node = sqlDoc.selectSingleNode(xpath);
return node.getText();
}
public static void main(String[] args) throws Exception {
String sqlString = loadSqlFromXml(sqlFile, "//SQLSTRING/Products");
System.out.println("SQL From XML File: \n" + sqlString);
}
}
能夠打包後續代碼共享