oracle數據庫中將clob字段內容利用java提取出至文本文檔中


代碼段:

  1.執行clob轉String

public static String ClobToString(Clob sc) throws SQLException, IOException {
  String reString = "";
  Reader is = sc.getCharacterStream();

  // 得到流
  BufferedReader br = new BufferedReader(is);
  String s = br.readLine();
  StringBuffer sb = new StringBuffer();
  while (s != null) {

    // 執行循環將字符串全部取出付值給StringBuffer由StringBuffer轉成STRING
    sb.append(s);
    s = br.readLine();
  }
  reString = sb.toString();
  return reString;
}

  2.主類執行循環讀取數據庫+將轉換內容存儲至文本文檔

public static void main(String[] args) {
  Connection connect = null;
  Statement statement = null;
  ResultSet resultSet = null;
  ResultSet resultSet1 = null;
  PreparedStatement preState = null;
  PreparedStatement preState1 = null;
  try {

  // 利用Driver對象
  Driver driver = new OracleDriver();
  DriverManager.deregisterDriver(driver);

  Properties pro = new Properties();
  pro.put("user", "用戶名");

  pro.put("password", "密碼");
  connect = driver.connect("jdbc:oracle:thin:@地址:端口:數據庫名", pro);

  // 查詢所有
  String sql1 = "數據庫相關查詢語句";
  preState1 = connect.prepareStatement(sql1);
  resultSet1 = preState1.executeQuery();

  while (resultSet1.next()) {

  //打印相關字段名,看看驗證一下是否是想要的字段
  System.out.println(resultSet1.getString("字段名"));

  //定義其中變量(試個人數據庫語句情況而定可取舍)
  String str = resultSet1.getString("字段名");

  //驗證一下打印字段是否正確
  System.out.println(str);
  String sql = "相關查詢語句";

  preState = connect.prepareStatement(sql);

  resultSet = preState.executeQuery();
  
  while (resultSet.next()) {
  String content = ClobToString(resultSet.getClob("自定義字段或表名"));
  BufferedWriter bw = null;
  try {

  //相關路徑為:src\\clobtest\\newfile.txt這個是我自己本地路徑(視個人情況而修改)
  bw = new BufferedWriter(new FileWriter("src\\clobtest\\newfile.txt", true));

  // for (int j = 0; j < 1; j++) {
  bw.write(content + '\n');
  // }
  bw.flush();

  } catch (IOException e) { 
  e.printStackTrace();
    } finally {
        try {
          if (bw != null) {
            bw.close();
          }
         } catch (IOException e) { 
           e.printStackTrace();
          }
        }
      }
    }

  } catch (Exception e) {
  e.printStackTrace();
  } finally {
  //關閉資源
  try {
    if (resultSet != null)
    resultSet.close();
    if (preState != null)
    preState.close();
    if (statement != null)
    statement.close();
    if (connect != null)
    connect.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
}

知識點:clob轉換至string、jdbc:oracle數據庫連接、基本讀取集合內容至文本文檔。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM