获取表格数据

/**
 * Description : 显示表数据(按行显示)
 *
 * @param type 数据库类型  MySQL 或SqlServer 或oracle
 * @param tableName
 * @throws Exception
 * @date : 2018-10-18   16:22
 * @author : PZG
 */
public  Vector<Vector<Object>> tableData(Connection connection,String type, String tableName) throws Exception {
    Vector<Object> vector = new Vector<>();
    Vector<Vector<Object>> dataVector = new Vector<Vector<Object>>(); //存储所有数据,里面每个小的Vector是存单行的
    Statement statement = connection.createStatement();
    DatabaseMetaData metaData = connection.getMetaData();
    ResultSet resultSet = null;
    Integer colimnCount = 0;
    if ("ORACLE".equals(type.toUpperCase())) {
        //其他数据库不需要这个方法的,直接传null,这个是oracle这么用
        tableName = tableName.toUpperCase();
        resultSet = metaData.getColumns(null, metaData.getUserName().toUpperCase(), tableName, "%");
    } else {
        resultSet = metaData.getColumns(null, "%", tableName, "%");
    }
    while (resultSet.next()) {
        String columnName = resultSet.getString("COLUMN_NAME");
        vector.add(columnName);
        colimnCount = resultSet.getRow();
    }
    dataVector.add(vector);
    ResultSet rs = statement.executeQuery("select * from " + tableName);
    while (rs.next()) {
        Vector<Object> vec = new Vector<Object>();//就是这个存单行的,最后放到上面的大的Vector里面
        for (int i = 1; i <= colimnCount; i++) {
            vec.add(rs.getObject(i));
        }
        dataVector.add(vec);
    }
    rs.close();
    resultSet.close();
    connection.close();
    return  dataVector ;
}
public class TableDataVo {

    private String columnName;
    private List<String> colDatas;
}

/**
     * Description : 获取表格数据(按列显示)
     *
     * @param type  数据库类型  如 mysql  SqlServer oracle
     * @param tableName
     * @throws Exception
     * @date : 2018-10-18   16:23
     * @author : PZG
     */
    public  List<TableDataVo>  getTableData(Connection connection,String type, String tableName) throws Exception {
        Statement statement = connection.createStatement();
        DatabaseMetaData metaData = connection.getMetaData();
        ResultSet resultSet = null;
        if ("ORACLE".equals(type.toUpperCase())) {
            //其他数据库不需要这个方法的,直接传null,这个是oracle这么用
            tableName = tableName.toUpperCase();
            resultSet = metaData.getColumns(null, metaData.getUserName().toUpperCase(), tableName, "%");
        } else {
            resultSet = metaData.getColumns(null, "%", tableName, "%");
        }
        List<TableDataVo> tableDataVos = new ArrayList<>();
        while (resultSet.next()) {
            TableDataVo tableDataVo = new TableDataVo();
            List<String> list = new ArrayList<>();
//            List<ColDataVo> list = new ArrayList<>();
            String columnName = resultSet.getString("COLUMN_NAME");
            ResultSet query = statement.executeQuery("select " + columnName + " COLUMNDATA from " + tableName);
            while (query.next()) {
//                ColDataVo colVo = new ColDataVo();
                String columndata = query.getString("COLUMNDATA");
                list.add(columndata);
//                colVo.setColumnData(columndata);
//                list.add(colVo);
            }
            tableDataVo.setColumnName(columnName);
            tableDataVo.setColDatas(list);
            tableDataVos.add(tableDataVo);
            query.close();
        }
        resultSet.close();
        connection.close();
        return tableDataVos ;
    }

猜你喜欢

转载自blog.csdn.net/qq_41991665/article/details/85262384
今日推荐