av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:5日期:2024-07-06 18:29:38
;展示JDBC存取Oracle大型數(shù)據(jù)對象LOB幾種情況的示范類import Java.io.*;import java.util.*;import java.sql.*;public class LobPros{;/** * ORACLE驅(qū)動程序 */ 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';;/** * 數(shù)據(jù)庫連接 */ private static Connection conn = null;;/** * SQL語句對象 */ private static Statement stmt = null;;/** * @roseuid 3EDA089E02BC */ public LobPros() {;};/** * 往數(shù)據(jù)庫中插入一個新的CLOB對象 * * @param infile - 數(shù)據(jù)文件 * @throws java.lang.Exception * @roseuid 3EDA04A902BC */ public static void clobInsert(String infile) throws Exception { /* 設(shè)定不自動提交 */ 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對象中寫入數(shù)據(jù) */ 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; };;;;;/* 恢復(fù)原提交狀態(tài) */ conn.setAutoCommit(defaultCommit); };/** * 修改CLOB對象(是在原CLOB對象基礎(chǔ)上進(jìn)行覆蓋式的修改) * * @param infile - 數(shù)據(jù)文件 * @throws java.lang.Exception * @roseuid 3EDA04B60367 */ public static void clobModify(String infile) throws Exception { /* 設(shè)定不自動提交 */ 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'); /* 進(jìn)行覆蓋式修改 */ 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; };;;;;/* 恢復(fù)原提交狀態(tài) */ conn.setAutoCommit(defaultCommit); };/** * 替換CLOB對象(將原CLOB對象清除,換成一個全新的CLOB對象) * * @param infile - 數(shù)據(jù)文件 * @throws java.lang.Exception * @roseuid 3EDA04BF01E1 */ public static void clobReplace(String infile) throws Exception { /* 設(shè)定不自動提交 */ 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'); /* 更新數(shù)據(jù) */ 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; };;;;;/* 恢復(fù)原提交狀態(tài) */ conn.setAutoCommit(defaultCommit); };/** * CLOB對象讀取 * * @param outfile - 輸出文件名 * @throws java.lang.Exception * @roseuid 3EDA04D80116 */ public static void clobRead(String outfile) throws Exception ;{ /* 設(shè)定不自動提交 */ 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; };;;;;/* 恢復(fù)原提交狀態(tài) */ conn.setAutoCommit(defaultCommit); };/** * 向數(shù)據(jù)庫中插入一個新的BLOB對象 * * @param infile - 數(shù)據(jù)文件 * @throws java.lang.Exception * @roseuid 3EDA04E300F6 */ public static void blobInsert(String infile) throws Exception { /* 設(shè)定不自動提交 */ 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對象中寫入數(shù)據(jù) */ 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; };;;;;/* 恢復(fù)原提交狀態(tài) */ conn.setAutoCommit(defaultCommit); };/** * 修改BLOB對象(是在原BLOB對象基礎(chǔ)上進(jìn)行覆蓋式的修改) * * @param infile - 數(shù)據(jù)文件 ;;* @throws java.lang.Exception * @roseuid 3EDA04E90106 */ public static void blobModify(String infile) throws Exception { /* 設(shè)定不自動提交 */ 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對象中寫入數(shù)據(jù) */ 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; };;;;;/* 恢復(fù)原提交狀態(tài) */ conn.setAutoCommit(defaultCommit); ;};/** * 替換BLOB對象(將原BLOB對象清除,換成一個全新的BLOB對象) * * @param infile - 數(shù)據(jù)文件 * @throws java.lang.Exception * @roseuid 3EDA0505000C */ public static void blobReplace(String infile) throws Exception { /* 設(shè)定不自動提交 */ 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對象中寫入數(shù)據(jù) */ 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; };;;;;/* 恢復(fù)原提交狀態(tài) */ conn.setAutoCommit(defaultCommit); };/** * BLOB對象讀取 * * @param outfile - 輸出文件名 * @throws java.lang.Exception * @roseuid 3EDA050B003B */ public static void blobRead(String outfile) throws Exception { /* 設(shè)定不自動提交 */ 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'); /* 以二進(jìn)制形式輸出 */ 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; };;;;;/* 恢復(fù)原提交狀態(tài) */ 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 - 命令行參數(shù) * @throws java.lang.Exception * @roseuid 3EDA052002AC */ public static void main(String[] args) throws Exception { /* 裝載驅(qū)動,建立數(shù)據(jù)庫連接 */ 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');;;;;;/* 關(guān)閉資源退出 */ conn.close(); System.exit(0); }}
標(biāo)簽: JDBC
主站蜘蛛池模板: 午夜噜噜噜 | 亚洲 欧美 激情 另类 校园 | 欧美久久一区 | 国产一区二区在线免费观看 | 99精品免费久久久久久久久日本 | 伊人天堂网 | 久久成人国产精品 | 中日字幕大片在线播放 | 国产分类视频 | 欧美一区二区三区在线 | 一级黄色片免费在线观看 | 久久狠狠| 欧美美女二区 | h在线| 中文字幕成人网 | 欧美一区二区成人 | 精品国产免费人成在线观看 | 亚洲一区二区三区在线播放 | 亚洲视频国产视频 | 国产农村妇女毛片精品久久麻豆 | 96av麻豆蜜桃一区二区 | 91国产在线视频在线 | 中文字幕免费在线观看 | 97精品国产97久久久久久免费 | 久草网址 | 天天操操 | 色综合网站 | 九九热精品免费 | 色精品视频 | 国产精品久久久久久久7电影 | 欧美视频区 | 国产午夜精品久久久 | 五月网婷婷 | 精品综合 | 日韩av在线一区二区三区 | 国产在线网址 | 一级毛片免费完整视频 | www.免费看片.com | 美女久久久 | 亚洲福利在线观看 | 久久精品久久久久久 |