java 讀取clob


java 讀取clob

CreationTime--2018年7月1日09點41分

Author:Marydon

1.說明

  jdbc 數據類型為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.代碼實現

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 {
        // 加載驅動程序,此處運用隱式注冊驅動程序的方法
        Class.forName(driver);
        log.info("加載驅動成功!");
    } catch (ClassNotFoundException e) {
        log.error("加載驅動程序,此處運用隱式注冊驅動程序的方法出錯:" + e.getMessage());
        e.printStackTrace();
    }
    try {
        // 創建連接對象
        Connection con = DriverManager.getConnection(url, username, password);
        // 創建sql執行對象
        Statement st = con.createStatement();
        // 執行sql語句並返回結果集
        ResultSet rs = st.executeQuery(sql);
        // 獲得結果集結構信息,元數據
        ResultSetMetaData rsmd = rs.getMetaData();
        // 獲得列數
        int columnCount = rsmd.getColumnCount();
        // 用於接收每行數據
        Map<String, Object> rowData = null;
        // clob類型
        Clob clob = null;
        // clob轉成String
        String clobString = "";
        while (rs.next()) {
            rowData = new HashMap<String, Object>();
            for (int i = 1; i <= columnCount; i++) {
                // 判斷數據類型是否為Clob
                if (rs.getObject(i) instanceof Clob) {// Clob轉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;
}

 

 相關推薦:

 


免責聲明!

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



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