<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        clob保存為本地xml文件,修改后上傳

        來源:懂視網 責編:小采 時間:2020-11-09 14:44:55
        文檔

        clob保存為本地xml文件,修改后上傳

        clob保存為本地xml文件,修改后上傳:這兩天與小伙伴寫了一個小程序,實現的功能如下: 首先將數據庫的clob保存為本地的xml文件,然后對xml進行修改后上傳至數據庫 主要的難點如下: 1:clob文件的下載與上傳,其中保存為本地的文件要求是UTF-8格式 2:xml文件中節點的修改 clob的上傳與下載
        推薦度:
        導讀clob保存為本地xml文件,修改后上傳:這兩天與小伙伴寫了一個小程序,實現的功能如下: 首先將數據庫的clob保存為本地的xml文件,然后對xml進行修改后上傳至數據庫 主要的難點如下: 1:clob文件的下載與上傳,其中保存為本地的文件要求是UTF-8格式 2:xml文件中節點的修改 clob的上傳與下載

        這兩天與小伙伴寫了一個小程序,實現的功能如下: 首先將數據庫的clob保存為本地的xml文件,然后對xml進行修改后上傳至數據庫 主要的難點如下: 1:clob文件的下載與上傳,其中保存為本地的文件要求是UTF-8格式 2:xml文件中節點的修改 clob的上傳與下載如下

        這兩天與小伙伴寫了一個小程序,實現的功能如下:

        首先將數據庫的clob保存為本地的xml文件,然后對xml進行修改后上傳至數據庫

        主要的難點如下:

        1:clob文件的下載與上傳,其中保存為本地的文件要求是UTF-8格式

        2:xml文件中節點的修改

        clob的上傳與下載如下

        import java.io.BufferedReader;
        import java.io.FileInputStream;
        import java.io.FileNotFoundException;
        import java.io.FileOutputStream;
        import java.io.IOException;
        import java.io.InputStreamReader;
        import java.io.OutputStreamWriter;
        import java.io.Reader;
        import java.io.UnsupportedEncodingException;
        import java.sql.Clob;
        import java.sql.Connection;
        import java.sql.PreparedStatement;
        import java.sql.ResultSet;
        import java.sql.SQLException;
        import java.sql.Statement;
        
        /**
         * @author GuoDi-CT DC
         *
         */
        
        public class ClobModify {
        
        	/**
        	 *@param id 數據庫中的ID
        	 * 返回 保存文件的絕對路徑
        	 */
        	public static String ClobToXml(int id) {
        	Connection conn = DB.getConn();
        	Statement stmt = DB.createStmt(conn);
        	String sql = "select * from BD_PROCESS_DEF_VER where ID =" + id;
        	ResultSet rs = DB.getRs(stmt, sql);
        	String xmlFile = null;
        
        	try {
        	if (rs.next()) {
        	int fjbh = rs.getInt(1);
        	xmlFile = "d:\\xml\\" + fjbh + ".xml";
        	Clob clob = rs.getClob(16);
        	FileOutputStream fo = new FileOutputStream(xmlFile);
        	OutputStreamWriter so = new OutputStreamWriter(fo, "UTF-8");
        	if (clob != null) {
        	Reader is = clob.getCharacterStream();
        	BufferedReader br = new BufferedReader(is);
        	String s = br.readLine();
        	while (s != null) {
        	so.write(s + System.getProperty("line.separator"));
        // System.out.println(str);
        	s = br.readLine();
        	}
        	}
        	so.flush();
        	so.close();
        	}
        	} catch (SQLException | IOException e) {
        	e.printStackTrace();
        	}
        	DB.close(rs);
        	DB.close(stmt);
        	DB.close(conn);
        	return xmlFile;
        	}
        
        	public static void updateClob(String fileName, int id) {
        
        	FileInputStream fis = null;
        	InputStreamReader rd = null;
        	
        	try {
        	fis = new FileInputStream(fileName);
        	rd = new InputStreamReader(fis, "UTF-8");
        	} catch (FileNotFoundException e2) {
        	e2.printStackTrace();
        	} catch (UnsupportedEncodingException e) {
        	e.printStackTrace();
        	}
        
        	PreparedStatement pst = null;
        	Connection conn = DB.getConn();
        	Statement stmt = DB.createStmt(conn);
        	try {
        	conn.setAutoCommit(false);
        	} catch (SQLException e1) {
        	e1.printStackTrace();
        	}
        
        	String sql1 = "update BD_PROCESS_DEF_VER s set s.NODE_INFO=' ' where ID="
        	+ id; // 這邊需要設置一個空的字段,后面就不會出現空指針
        	try {
        	stmt.execute(sql1);
        	} catch (SQLException e) {
        	e.printStackTrace();
        	}
        	
        	String sql2 = "select * from BD_PROCESS_DEF_VER s where s.ID=" + id;
        	// 鎖定數據行進行更新,注意“for update”語句
        	ResultSet rs = null;
        	try {
        	rs = stmt.executeQuery(sql2);
        	} catch (SQLException e) {
        	e.printStackTrace();
        	}
        	
        	try {
        	while (rs.next()) {
        	String sql3 = "update BD_PROCESS_DEF_VER set NODE_INFO= ? where ID="+ id;
        	pst = conn.prepareStatement(sql3);
        	pst.setCharacterStream(1, rd, 100000000);
        	pst.executeUpdate();
        	}
        	// 最后一步自己提交
        	conn.commit();
        	conn.setAutoCommit(true);
        
        	} catch (SQLException e) {
        	e.printStackTrace();
        	} finally {
        	DB.close(rs);
        	DB.close(stmt);
        	try {
        	pst.close();
        	} catch (SQLException e) {
        	e.printStackTrace();
        	}
        	DB.close(conn);
        	}
        	}
        }

        其中DB是連接數據庫的javabean,如下
        import java.sql.Connection;
        import java.sql.DriverManager;
        import java.sql.ResultSet;
        import java.sql.SQLException;
        import java.sql.Statement;
        
        /**
         * @author GuoDi-CT DC 
         * jdcbc JavaBean
         * 
         */
        public class DB {
        	// 驅動程序就是之前在classpath中配置的JDBC的驅動程序的JAR 包中
        	public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
        	// 連接地址是由各個數據庫生產商單獨提供的,所以需要單獨記住
        	public static final String DBURL = "jdbc:oracle:thin:@172.17.20.215:1521:BPMIDE";
        	// 連接數據庫的用戶名
        	public static final String DBUSER = "bpmduser";
        	// 連接數據庫的密碼
        	public static final String DBPASS = "bpmd";
        
        	public static Connection getConn() {
        	Connection conn = null;
        	try {
        	Class.forName(DBDRIVER);
        	conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 2、連接數據庫
        	} catch (ClassNotFoundException e) {
        	e.printStackTrace();
        	} // 1、使用CLASS 類加載驅動程序
        	catch (SQLException e) {
        	e.printStackTrace();
        	}
        	return conn;
        	}
        
        	public static Statement createStmt(Connection conn) {
        	Statement stmt = null;
        	try {
        	stmt = conn.createStatement();
        	} catch (SQLException e) {
        	e.printStackTrace();
        	}
        	return stmt;
        	}
        
        	public static ResultSet getRs(Statement stmt, String sql) {
        	ResultSet rs = null;
        	try {
        	rs = stmt.executeQuery(sql);
        	} catch (SQLException e) {
        	e.printStackTrace();
        	}
        	return rs;
        	}
        
        	public static void close(ResultSet rs) {
        	if (rs != null) {
        	try {
        	rs.close();
        	} catch (SQLException e) {
        	e.printStackTrace();
        	} finally {
        	rs = null;
        	}
        	}
        	}
        
        	public static void close(Statement stmt) {
        	if (stmt != null) {
        	try {
        	stmt.close();
        	} catch (SQLException e) {
        	e.printStackTrace();
        	} finally {
        	stmt = null;
        	}
        	}
        	}
        
        	public static void close(Connection conn) {
        	if (conn != null) {
        	try {
        	conn.close();
        	} catch (SQLException e) {
        	// TODO Auto-generated catch block
        	e.printStackTrace();
        	} finally {
        	conn = null;
        	}
        	}
        	}
        }


        xml的修改程序如下

        import java.io.FileNotFoundException;
        import java.io.FileOutputStream;
        import java.io.IOException;
        
        import javax.xml.parsers.DocumentBuilder;
        import javax.xml.parsers.DocumentBuilderFactory;
        import javax.xml.parsers.ParserConfigurationException;
        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;
        import org.w3c.dom.NodeList;
        import org.xml.sax.SAXException;
        
        /**
         * 
         * @author zhangwen.ctdc DOM更新與解析XML文檔
         */
        public class XmlAnalysis /* implements XmlDocumentInterface */{
        	private Document document;
        
        	public void init() {
        	try {
        	DocumentBuilderFactory factory = DocumentBuilderFactory
        	.newInstance();
        	DocumentBuilder builder = factory.newDocumentBuilder();
        	this.document = builder.newDocument();
        	} catch (ParserConfigurationException e) {
        	System.out.println(e.getMessage());
        	}
        	}
        
        	public void insertElementNode(String fileName, String nodeName,
        	String newElementName) {
        	document = parserXml(fileName);
        
        	NodeList nodeList = document.getElementsByTagName(nodeName);
        
        	for (int i = 0; i < nodeList.getLength(); i++) {
        	Element element = document.createElement(newElementName);
        	nodeList.item(i).appendChild(element);
        	}
        
        	createXml(fileName);
        
        	}
        
        	public void insertAttrNode(String fileName, String nodeName,
        	String newAttrName, String attrValue) {
        	document = parserXml(fileName);
        
        	NodeList nodeList = document.getElementsByTagName(nodeName);
        	for (int i = 0; i < nodeList.getLength(); i++) {
        	Element element = (Element) (nodeList.item(i));
        	element.setAttribute(newAttrName, attrValue);
        	}
        
        	createXml(fileName);
        	}
        
        	public void insertTextNode(String fileName, String nodeName, String textNode) {
        	document = parserXml(fileName);
        
        	NodeList nodeList = document.getElementsByTagName(nodeName);
        	for (int i = 0; i < nodeList.getLength(); i++) {
        	nodeList.item(i).appendChild(document.createTextNode(textNode));
        	}
        	createXml(fileName);
        
        	}
        
        	public void deleteElementNode(String fileName, String nodeName) {
        	document = parserXml(fileName);
        
        	NodeList nodeList = document.getElementsByTagName(nodeName);
        
        	while (nodeList.getLength() > 0) {
        	nodeList.item(0).getParentNode().removeChild(nodeList.item(0));
        	nodeList = document.getElementsByTagName(nodeName);
        	}
        
        	createXml(fileName);
        	}
        
        	public void updateNode(String fileName, String nodeName, String attrName,
        	String newAttrValue) {
        	document = parserXml(fileName);
        
        	NodeList nodeList = document.getElementsByTagName(nodeName);
        	for (int i = 0; i < nodeList.getLength(); i++) {
        	Element node = (Element) nodeList.item(i);
        	node.setAttribute(attrName, newAttrValue);
        	}
        
        	createXml(fileName);
        	}
        
        	private Document parserXml(String fileName) {
        	try {
        	DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        	DocumentBuilder db = dbf.newDocumentBuilder();
        	Document document = db.parse(fileName);
        
        	System.out.println("-----------------------------------" + "解析完畢"
        	+ "----------------------------------------");
        	return document;
        
        	} catch (FileNotFoundException e) {
        	System.out.println(e.getMessage());
        	} catch (ParserConfigurationException e) {
        	System.out.println(e.getMessage());
        	} catch (SAXException e) {
        	System.out.println(e.getMessage());
        	} catch (IOException e) {
        	System.out.println(e.getMessage());
        	}
        	return document;
        	}
        
        	private void createXml(String fileName) {
        	try {
        	/** 將document中的內容寫入文件中 */
        	TransformerFactory tFactory = TransformerFactory.newInstance();
        	Transformer transformer = tFactory.newTransformer();
        	transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
        	transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        	DOMSource source = new DOMSource(document);
        	StreamResult result = new StreamResult(new FileOutputStream(
        	fileName));
        	transformer.transform(source, result);
        	System.out.println("--------------------------------"
        	+ "更新 XML文件成功" + "-------------------------------------");
        	} catch (Exception exception) {
        	System.out.println("更新" + fileName + "出錯:" + exception);
        	exception.printStackTrace();
        	}
        
        	}
        }

        最后程序提供的接口與說明如下
        /**
         * @author GuoDi and ZhangWen
         *
         */
        public interface NodeInfoInterface {
         
         /** 
         * XML文檔 插元素入節點
         * @param time 時間
         * @param nodeName 標簽名
         * @param newElementName 新標簽
         */ 
         public void insertElementNode(String time, String nodeName,String newElementName);
        	
         /** 
         * @param time 時間
         * @param nodeName 標簽名
         * @param newAttrName 新屬性名
         * @param attrValue 新屬性值
         * XML文檔 插入屬性節點
         */ 
         public void insertAttrNode(String time,String nodeName,String newAttrName,String attrValue);
        	
         /** 
         * @param time 時間
         * @param nodeName 標簽名
         * @param textNode 文本
         * XML文檔 插入文本節點
         */ 
         public void insertTextNode(String time,String nodeName,String textNode);
        	
         /** 
         * @param time 時間
         * @param nodeName 標簽名
         * XML文檔 刪除所有對應元素節點
         */ 
         public void deleteElementNode(String time,String nodeName);
        	
         /** 
         * @param time 時間
         * @param nodeName 標簽名
         * @param newAttrName 新屬性名
         * @param attrValue 新屬性值
         * XML文檔 修改屬性節點內容
         */ 
         public void updateNode(String time,String nodeName,String newAttrName,String attrValue);
        	
        }


        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        clob保存為本地xml文件,修改后上傳

        clob保存為本地xml文件,修改后上傳:這兩天與小伙伴寫了一個小程序,實現的功能如下: 首先將數據庫的clob保存為本地的xml文件,然后對xml進行修改后上傳至數據庫 主要的難點如下: 1:clob文件的下載與上傳,其中保存為本地的文件要求是UTF-8格式 2:xml文件中節點的修改 clob的上傳與下載
        推薦度:
        標簽: 保存 文件 上傳
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲精品乱码久久久久久蜜桃图片| 亚洲国产精品一区第二页| 亚洲国产日产无码精品| 最刺激黄a大片免费网站| 亚洲Av无码专区国产乱码DVD | 国产午夜亚洲精品| 成人最新午夜免费视频| 亚洲欧美aⅴ在线资源| 日韩高清在线免费观看| 国产精品亚洲а∨天堂2021| 免费观看四虎精品国产永久| 一级毛片视频免费| 亚洲成a人片在线观看无码专区| 日本卡1卡2卡三卡免费| 亚洲国产高清美女在线观看| 大地资源免费更新在线播放| 国产精品亚洲综合一区在线观看 | 亚洲国产激情在线一区| 午夜一级毛片免费视频| 成人午夜影视全部免费看| 亚洲日产韩国一二三四区| 1000部拍拍拍18免费网站| 亚洲高清乱码午夜电影网| 亚洲色WWW成人永久网址| 免费看片在线观看| 亚洲欧美在线x视频| 亚洲国产精品VA在线观看麻豆| 8x8×在线永久免费视频| 精品无码专区亚洲| 国产V亚洲V天堂无码久久久| 美女裸身网站免费看免费网站| 国产精品亚洲精品久久精品| 亚洲国产精品无码久久久秋霞2 | 日韩人妻无码精品久久免费一| 亚洲三级中文字幕| 亚洲精品国产V片在线观看| 91成人在线免费观看| 爱情岛论坛免费视频| 91大神亚洲影视在线| 免费一级特黄特色大片在线| 久久国产精品2020免费m3u8|