/**
* 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 ;
}