代碼段:
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數據庫連接、基本讀取集合內容至文本文檔。