前言
今天有一个需求,查询数据库中的数据,然后传递给前台处理,但是这个数据是没有定义bean对象的数据,因此需要将数据直接拿到,而不需要bean去接收。所以对于这个问题,先通过JDBC连接数据库,然后执行相应的sql语句,将结果放到ResultSet中,所以主要的问题就是如何将ResultSet中的数据取出来。
先上代码:
public List<T> findAll(String tableName) throws SQLException {
String sb = "select * from " + tableName; //查询语句
Connection conn = mysqlConectComponent.getConnection();//JDBC连接方法,可以自己定义
PreparedStatement state = conn.prepareStatement(sb);//通过PreparedStatement执行查询语句
ResultSet rs = state.executeQuery();//将数据写入到ResultSet中
ResultSetMetaData md = rs.getMetaData();//获取键名
int columnCount = md.getColumnCount();//获取行的数量
List list = new ArrayList<T>();// 定义一个list,用来存放数据
while (rs.next()) {
Map rowData = new HashMap();//声明Map
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));//获取键名及值
}
list.add(rowData);//将数据添加到list中
}
rs.close();
close(conn, state);
return list;
}
以上就是对于处理ResultSet的处理方法,主要的思想是将结果遍历放入list中,然后将list传递给前端,前端可以进行解析获取对应的数据。