国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

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

2024-08-29 13:40:56
字體:
來源:轉載
供稿:網友

  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 ID='111' 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 ID='111' 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 ID='111' 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(fal

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和田市| 平邑县| 六枝特区| 乌拉特中旗| 南澳县| 花垣县| 菏泽市| 赫章县| 古浪县| 山西省| 南投县| 崇左市| 抚顺市| 聊城市| 泰来县| 永昌县| 章丘市| 石河子市| 封开县| 辽宁省| 沁水县| 通州区| 阆中市| 青阳县| 班戈县| 梧州市| 淅川县| 舟山市| 西青区| 吉木乃县| 磐安县| 吴堡县| 三原县| 合川市| 汉阴县| 斗六市| 庐江县| 宜兴市| 秦安县| 玛纳斯县| 乡城县|