溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java 如何讀取clob

發(fā)布時間:2020-10-26 15:01:25 來源:億速云 閱讀:215 作者:Leah 欄目:開發(fā)技術(shù)

java 如何讀取clob?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

1.說明

  jdbc 數(shù)據(jù)類型為Clob,與java的String類型相對應。

2.導入

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.sql.Clob;

3.代碼實現(xiàn)

public List<Map<String, Object>> queryForList() {
  List<Map<String, Object>> rowList = new ArrayList<Map<String, Object>>();
  String driver = "";
  String url = "";
  String username = "";
  String password = "";
  String sql = "";
  log.info("查詢sql條件:" + sql);
  try {
    // 加載驅(qū)動程序,此處運用隱式注冊驅(qū)動程序的方法
    Class.forName(driver);
    log.info("加載驅(qū)動成功!");
  } catch (ClassNotFoundException e) {
    log.error("加載驅(qū)動程序,此處運用隱式注冊驅(qū)動程序的方法出錯:" + e.getMessage());
    e.printStackTrace();
  }
  try {
    // 創(chuàng)建連接對象
    Connection con = DriverManager.getConnection(url, username, password);
    // 創(chuàng)建sql執(zhí)行對象
    Statement st = con.createStatement();
    // 執(zhí)行sql語句并返回結(jié)果集
    ResultSet rs = st.executeQuery(sql);
    // 獲得結(jié)果集結(jié)構(gòu)信息,元數(shù)據(jù)
    ResultSetMetaData rsmd = rs.getMetaData();
    // 獲得列數(shù)
    int columnCount = rsmd.getColumnCount();
    // 用于接收每行數(shù)據(jù)
    Map<String, Object> rowData = null;
    // clob類型
    Clob clob = null;
    // clob轉(zhuǎn)成String
    String clobString = "";
    while (rs.next()) {
      rowData = new HashMap<String, Object>();
      for (int i = 1; i <= columnCount; i++) {
        // 判斷數(shù)據(jù)類型是否為Clob
        if (rs.getObject(i) instanceof Clob) {// Clob轉(zhuǎn)String
          clob = (Clob) rs.getObject(i);
          clobString = clob.getSubString((long) 1, (int) clob.length());
          rowData.put(rsmd.getColumnName(i), clobString);
        } else {
          rowData.put(rsmd.getColumnName(i), rs.getObject(i));
        }

      }
      rowList.add(rowData);
    }

    // 關閉相關的對象
    if (rs != null) {
      rs.close();
    }
    if (st != null) {
      st.close();
    }
    if (con != null) {
      con.close();
    }
  } catch (SQLException e) {
    e.printStackTrace();
  }
  return rowList;
}

看完上述內(nèi)容,你們掌握java 如何讀取clob的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI