我的实际应用是,给我一个库,然后查询所有表,而且返回一条数据,我用Jdbc结果集,Map映射。
public List<Map<String, Object>> selectOneData(String tableName) {
Connection conn = null;
ResultSet rs = null;
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
try {
conn = JdbcUtil.getConnection();
String sql = "SELECT * FROM " + tableName + "WHERE ROWNUM = 1";
rs = conn.createStatement().executeQuery(sql);
Map<String, Object> oneDataMap = new HashMap<>();
if (rs.next()) {
// 获取源数据
ResultSetMetaData metaData = rs.getMetaData();
// 获取列的个数
int columnCount = metaData.getColumnCount();
for (int i = 1; i <= columnCount; i++) {
String columnName = metaData.getColumnName(i);
if (rs.getObject(i) != null) {
oneDataMap.put(columnName, rs.getObject(i));
} else {
oneDataMap.put(columnName, null);
}
}
list.add(oneDataMap);
} else {
// 获取源数据
ResultSetMetaData metaData = rs.getMetaData();
// 获取列的个数
int columnCount = metaData.getColumnCount();
for (int i = 1; i <= columnCount; i++) {
// 通过下标拿到所有到列名
String columnName = metaData.getColumnName(i);
// 列名, 列对应的数据
oneDataMap.put(columnName, null);
}
list.add(oneDataMap);
}
return list;
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtil.close(rs, null, conn);
}
return list;
}
如果有什么看不懂的可以联系我邮箱。[email protected]