了解了一些方法,也尝试了一些方法,个人比较喜欢的是如下方法:
/**静态方法,并抛出SQL异常 */
public static List converToList(ResultSet rs) throws SQLException{
List list = new ArrayList();//new一个新的List
ResultSetMetaData md = (ResultSetMetaData) rs.getMetaData();//将传进来的结果集用getMetaData方法用于获取数据集的数据(如列数)
int columnCount = md.getColumnCount();//得到数据集的列数
while (rs.next()) {//数据集不为空
Map rowData = new HashMap();
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));
}
list.add(rowData);
}
return list;
}
然后在main方法里写了测试代码:
try {
Statement statement = (Statement) conn.createStatement();
ResultSet rs = statement.executeQuery("select * from t_user");
List<User> userList = new ArrayList<User>();
userList = DBUtils.converToList(rs);//用类名直接调用
for(int i = 0;i<userList.size();i++){
System.out.println(userList.get(i));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}