<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
        主站蜘蛛池模板: 久久久久亚洲AV无码观看| 午夜亚洲福利在线老司机| 国产精品亚洲视频| 亚洲国产av玩弄放荡人妇| 美女视频黄的全免费视频网站| 亚洲熟妇无码另类久久久| 一级特级aaaa毛片免费观看| 美女被免费视频网站a国产| 亚洲人成激情在线播放| 1000部禁片黄的免费看| 久久亚洲国产成人精品性色| 免费一区二区三区| 亚洲一区二区三区首页| 久别的草原电视剧免费观看| 久久亚洲精品成人综合| 无码少妇精品一区二区免费动态 | 久久精品国产亚洲AV嫖农村妇女| 99久久免费国产精品热| 亚洲精品无码久久久久去q | 无码午夜成人1000部免费视频| 亚洲热线99精品视频| 成年免费a级毛片免费看无码| 自拍偷自拍亚洲精品情侣| 男女一进一出抽搐免费视频| 亚洲中文字幕无码一区| 免费一区二区无码东京热| 久久91亚洲精品中文字幕| 最近中文字幕大全中文字幕免费| 亚洲视频小说图片| 韩国免费一级成人毛片| 亚洲精品无码成人片久久不卡| 国产成人免费高清在线观看| 日韩在线观看免费完整版视频| 亚洲人成电影在线播放| 久久免费视频观看| 亚洲喷奶水中文字幕电影| 国产小视频在线观看免费| 国产高潮久久免费观看| 久久亚洲美女精品国产精品 | 国产精品亚洲mnbav网站 | 成年女人色毛片免费看|