zoukankan      html  css  js  c++  java
  • 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;
    }

     相关推荐:

  • 相关阅读:
    移动端h5实现拍照上传图片并预览&webuploader
    移动端实现上拉加载更多(使用dropload.js vs js)
    实用的移动端日历选择插件
    string.replace替换
    js与native的交互
    div实现返回符,倒三角,椭圆+小知识收集
    js返回一组日期中最近连续的天数
    javascript 事件冒泡和事件代理
    微信小程序DEMO——面包旅行的代码
    微信小程序使用 iconfont
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/9249425.html
Copyright © 2011-2022 走看看