国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

展示JDBC存取ORACLE大型數據對象LOB幾種情況的示范類

瀏覽:6日期:2024-07-06 18:29:38
;展示JDBC存取Oracle大型數據對象LOB幾種情況的示范類import Java.io.*;import java.util.*;import java.sql.*;public class LobPros{;/** * ORACLE驅動程序 */ private static final String DRIVER = 'oracle.jdbc.driver.OracleDriver';;/** * ORACLE連接用URL */ private static final String URL = 'jdbc:oracle:thin:@test2000:1521:orac';;/** * 用戶名 */ private static final String USER = 'user';;/** * 密碼 */ private static final String PASSWord = 'pswd';;/** * 數據庫連接 */ private static Connection conn = null;;/** * SQL語句對象 */ private static Statement stmt = null;;/** * @roseuid 3EDA089E02BC */ public LobPros() {;};/** * 往數據庫中插入一個新的CLOB對象 * * @param infile - 數據文件 * @throws java.lang.Exception * @roseuid 3EDA04A902BC */ public static void clobInsert(String infile) throws Exception { /* 設定不自動提交 */ boolean defaultCommit = conn.getAutoCommit(); conn.setAutoCommit(false);;;;;;try { /* 插入一個空的CLOB對象 */ stmt.executeUpdate('INSERT INTO TEST_CLOB VALUES ('111', EMPTY_CLOB())'); /* 查詢此CLOB對象并鎖定 */ ResultSet rs = stmt.executeQuery('SELECT CLOBCOL FROM TEST_CLOB WHERE FOR UPDATE'); while (rs.next()) { ;;;;;/* 取出此CLOB對象 */ oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob('CLOBCOL'); /* 向CLOB對象中寫入數據 */ BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream()); BufferedReader in = new BufferedReader(new FileReader(infile)); int c; while ((c=in.read())!=-1) { out.write(c); } in.close(); out.close(); } /* 正式提交 */ conn.commit(); } catch (Exception ex) { /* 出錯回滾 */ conn.rollback(); throw ex; };;;;;/* 恢復原提交狀態 */ conn.setAutoCommit(defaultCommit); };/** * 修改CLOB對象(是在原CLOB對象基礎上進行覆蓋式的修改) * * @param infile - 數據文件 * @throws java.lang.Exception * @roseuid 3EDA04B60367 */ public static void clobModify(String infile) throws Exception { /* 設定不自動提交 */ boolean defaultCommit = conn.getAutoCommit(); conn.setAutoCommit(false);;;;;;try { /* 查詢CLOB對象并鎖定 */ ResultSet rs = stmt.executeQuery('SELECT CLOBCOL FROM TEST_CLOB WHERE FOR UPDATE'); ;while (rs.next()) { /* 獲取此CLOB對象 */ oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob('CLOBCOL'); /* 進行覆蓋式修改 */ BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream()); BufferedReader in = new BufferedReader(new FileReader(infile)); int c; while ((c=in.read())!=-1) { out.write(c); } in.close(); out.close(); } /* 正式提交 */ conn.commit(); } catch (Exception ex) { /* 出錯回滾 */ conn.rollback(); throw ex; };;;;;/* 恢復原提交狀態 */ conn.setAutoCommit(defaultCommit); };/** * 替換CLOB對象(將原CLOB對象清除,換成一個全新的CLOB對象) * * @param infile - 數據文件 * @throws java.lang.Exception * @roseuid 3EDA04BF01E1 */ public static void clobReplace(String infile) throws Exception { /* 設定不自動提交 */ boolean defaultCommit = conn.getAutoCommit(); conn.setAutoCommit(false);;;;;;try { /* 清空原CLOB對象 */ ;stmt.executeUpdate('UPDATE TEST_CLOB SET CLOBCOL=EMPTY_CLOB() WHERE ID='111''); /* 查詢CLOB對象并鎖定 */ ResultSet rs = stmt.executeQuery('SELECT CLOBCOL FROM TEST_CLOB WHERE FOR UPDATE'); while (rs.next()) { /* 獲取此CLOB對象 */ oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob('CLOBCOL'); /* 更新數據 */ BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream()); BufferedReader in = new BufferedReader(new FileReader(infile)); int c; while ((c=in.read())!=-1) { out.write(c); } in.close(); out.close(); } /* 正式提交 */ conn.commit(); } catch (Exception ex) { /* 出錯回滾 */ conn.rollback(); throw ex; };;;;;/* 恢復原提交狀態 */ conn.setAutoCommit(defaultCommit); };/** * CLOB對象讀取 * * @param outfile - 輸出文件名 * @throws java.lang.Exception * @roseuid 3EDA04D80116 */ public static void clobRead(String outfile) throws Exception ;{ /* 設定不自動提交 */ boolean defaultCommit = conn.getAutoCommit(); conn.setAutoCommit(false);;;;;;try { /* 查詢CLOB對象 */ ResultSet rs = stmt.executeQuery('SELECT * FROM TEST_CLOB WHERE ID='111''); while (rs.next()) { /* 獲取CLOB對象 */ oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob('CLOBCOL'); /* 以字符形式輸出 */ BufferedReader in = new BufferedReader(clob.getCharacterStream()); BufferedWriter out = new BufferedWriter(new FileWriter(outfile)); int c; while ((c=in.read())!=-1) { out.write(c); } out.close(); in.close(); } } catch (Exception ex) { conn.rollback(); throw ex; };;;;;/* 恢復原提交狀態 */ conn.setAutoCommit(defaultCommit); };/** * 向數據庫中插入一個新的BLOB對象 * * @param infile - 數據文件 * @throws java.lang.Exception * @roseuid 3EDA04E300F6 */ public static void blobInsert(String infile) throws Exception { /* 設定不自動提交 */ boolean defaultCommit = conn.getAutoCommit(); ;;;;;conn.setAutoCommit(false);;;;;;try { /* 插入一個空的BLOB對象 */ stmt.executeUpdate('INSERT INTO TEST_BLOB VALUES ('222', EMPTY_BLOB())'); /* 查詢此BLOB對象并鎖定 */ ResultSet rs = stmt.executeQuery('SELECT BLOBCOL FROM TEST_BLOB WHERE FOR UPDATE'); while (rs.next()) { /* 取出此BLOB對象 */ oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob('BLOBCOL'); /* 向BLOB對象中寫入數據 */ BufferedOutputStream out = new BufferedOutputStream(blob.getBinaryOutputStream()); BufferedInputStream in = new BufferedInputStream(new FileInputStream(infile)); int c; while ((c=in.read())!=-1) { out.write(c); } in.close(); out.close(); } /* 正式提交 */ conn.commit(); } catch (Exception ex) { /* 出錯回滾 */ conn.rollback(); throw ex; };;;;;/* 恢復原提交狀態 */ conn.setAutoCommit(defaultCommit); };/** * 修改BLOB對象(是在原BLOB對象基礎上進行覆蓋式的修改) * * @param infile - 數據文件 ;;* @throws java.lang.Exception * @roseuid 3EDA04E90106 */ public static void blobModify(String infile) throws Exception { /* 設定不自動提交 */ boolean defaultCommit = conn.getAutoCommit(); conn.setAutoCommit(false);;;;;;try { /* 查詢BLOB對象并鎖定 */ ResultSet rs = stmt.executeQuery('SELECT BLOBCOL FROM TEST_BLOB WHERE FOR UPDATE'); while (rs.next()) { /* 取出此BLOB對象 */ oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob('BLOBCOL'); /* 向BLOB對象中寫入數據 */ BufferedOutputStream out = new BufferedOutputStream(blob.getBinaryOutputStream()); BufferedInputStream in = new BufferedInputStream(new FileInputStream(infile)); int c; while ((c=in.read())!=-1) { out.write(c); } in.close(); out.close(); } /* 正式提交 */ conn.commit(); } catch (Exception ex) { /* 出錯回滾 */ conn.rollback(); throw ex; };;;;;/* 恢復原提交狀態 */ conn.setAutoCommit(defaultCommit); ;};/** * 替換BLOB對象(將原BLOB對象清除,換成一個全新的BLOB對象) * * @param infile - 數據文件 * @throws java.lang.Exception * @roseuid 3EDA0505000C */ public static void blobReplace(String infile) throws Exception { /* 設定不自動提交 */ boolean defaultCommit = conn.getAutoCommit(); conn.setAutoCommit(false);;;;;;try { /* 清空原BLOB對象 */ stmt.executeUpdate('UPDATE TEST_BLOB SET BLOBCOL=EMPTY_BLOB() WHERE ID='222''); /* 查詢此BLOB對象并鎖定 */ ResultSet rs = stmt.executeQuery('SELECT BLOBCOL FROM TEST_BLOB WHERE FOR UPDATE'); while (rs.next()) { /* 取出此BLOB對象 */ oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob('BLOBCOL'); /* 向BLOB對象中寫入數據 */ BufferedOutputStream out = new BufferedOutputStream(blob.getBinaryOutputStream()); BufferedInputStream in = new BufferedInputStream(new FileInputStream(infile)); int c; while ((c=in.read())!=-1) { out.write(c); } in.close(); out.close(); } /* 正式提交 */ conn.commit(); } catch (Exception ex) { ;/* 出錯回滾 */ conn.rollback(); throw ex; };;;;;/* 恢復原提交狀態 */ conn.setAutoCommit(defaultCommit); };/** * BLOB對象讀取 * * @param outfile - 輸出文件名 * @throws java.lang.Exception * @roseuid 3EDA050B003B */ public static void blobRead(String outfile) throws Exception { /* 設定不自動提交 */ boolean defaultCommit = conn.getAutoCommit(); conn.setAutoCommit(false);;;;;;try { /* 查詢BLOB對象 */ ResultSet rs = stmt.executeQuery('SELECT BLOBCOL FROM TEST_BLOB WHERE ID='222''); while (rs.next()) { /* 取出此BLOB對象 */ oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob('BLOBCOL'); /* 以二進制形式輸出 */ BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outfile)); BufferedInputStream in = new BufferedInputStream(blob.getBinaryStream()); int c; while ((c=in.read())!=-1) { out.write(c); } in.close(); out.close(); } /* 正式提交 */ ;conn.commit(); } catch (Exception ex) { /* 出錯回滾 */ conn.rollback(); throw ex; };;;;;/* 恢復原提交狀態 */ conn.setAutoCommit(defaultCommit); };/** * 建立測試用表格 * @throws Exception */ public static void createTables() throws Exception { try { stmt.executeUpdate('CREATE TABLE TEST_CLOB ( ID NUMBER(3), CLOBCOL CLOB)'); stmt.executeUpdate('CREATE TABLE TEST_BLOB ( ID NUMBER(3), BLOBCOL BLOB)'); } catch (Exception ex) {;;;;;} };/** * @param args - 命令行參數 * @throws java.lang.Exception * @roseuid 3EDA052002AC */ public static void main(String[] args) throws Exception { /* 裝載驅動,建立數據庫連接 */ Class.forName(DRIVER); conn = DriverManager.getConnection(URL,USER,PASSWORD); stmt = conn.createStatement();;;;;;/* 建立測試表格 */ createTables();;;;;;/* CLOB對象插入測試 */ clobInsert('c:/clobInsert.txt'); clobRead('c:/clobInsert.out');;;;;;/* CLOB對象修改測試 */ clobModify('c:/clobModify.txt'); clobRead('c:/clobModify.out');;;;;;/* CLOB對象替換測試 */ clobReplace('c:/clobReplace.txt'); clobRead('c:/clobReplace.out');;;;;;/* BLOB對象插入測試 */ blobInsert('c:/blobInsert.doc'); blobRead('c:/blobInsert.out');;;;;;/* BLOB對象修改測試 */ ;;;;;blobModify('c:/blobModify.doc'); blobRead('c:/blobModify.out');;;;;;/* BLOB對象替換測試 */ blobReplace('c:/blobReplace.doc'); blobRead('c:/bolbReplace.out');;;;;;/* 關閉資源退出 */ conn.close(); System.exit(0); }}
標簽: JDBC
主站蜘蛛池模板: 亚洲精品国产成人中文 | 色爽爽爽爽爽爽爽爽 | 99久在线观看 | 亚洲精品国产精品国自产 | 一区二区中文字幕亚洲精品 | 久久精品国产欧美日韩亚洲 | 国产亚洲欧美精品久久久 | 一 级做人爱全视频在线看 一本不卡 | 国产成人综合网亚洲欧美在线 | 亚洲成人手机在线观看 | 欧美一区二区三区免费看 | 在线日韩三级 | 全部免费毛片免费播放 | 亚洲精品tv久久久久 | 欧美一级毛片无遮无挡 | 久久综合一区二区三区 | www.亚洲日本 | 久草网视频在线 | 亚洲精品亚洲人成毛片不卡 | 欧美一级久久久久久久久大 | 免费不卡毛片 | 日韩精品一区二区三区视频网 | 欧美aaaa在线观看视频免费 | 国产精品九九九久久九九 | 欧美精品一区视频 | 日韩国产毛片 | 全部免费a级毛片 | 伊人色综合久久成人 | 在线观看一区二区三区视频 | 国产精品系列在线 | 亚洲欧洲一级 | 国产一级在线观看 | 91国偷自产一区二区三区 | 一区二区三区久久精品 | 国产成人久久777777 | 人操人碰 | 国产私拍福利精品视频推出 | a级片免费观看视频 | 亚洲国产精品第一区二区三区 | 久久综合九九亚洲一区 | 欧美成人亚洲高清在线观看 |