• 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;
    }

     相关推荐:

  • 相关阅读:
    使用springboot遇到的问题
    npm使用出现的问题
    ORACLE遇到的新知识
    使用linux
    解释ArrayList的源码
    git的基础知识(并不是直接照着抄写的,用到的写过来)
    使用github遇到的问题
    java将数据库中菜单表中内容转化成一个导航树
    使用python自动发放员工工资条到个人邮箱
    zabbix图形中文乱码
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/9249425.html
Copyright © 2020-2023  润新知