版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenbetter1996/article/details/83017802
package top.cglzwz.Test1;
import java.sql.ResultSet;
import java.util.List;
import java.util.Map;
/**
*
* ResultSet返回List
*
* @author chgl16
* @Date 2018.10.11
*
*/
public interface ResultSetToListService {
/**
* SELECT * FROM websites
* 查询所有记录,以List返回
* list对象的每一个元素都是一条记录
* 每条记录保存在Map<String, Object>里面,String类型指字段名字,Object对应字段值
*
* @param rs
* @return List<Map<String, Object>>
*/
public List<Map<String, Object>> selectAll(ResultSet rs);
}
package top.cglzwz.Test1;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
*
* ResultSet返回List
*
* @author chgl16
* @Date 2018.10.11
*
*/
public class ResultSetToListServiceImp implements ResultSetToListService {
/**
* SELECT * FROM websites
* 查询所有记录,以List返回
* list对象的每一个元素都是一条记录
* 每条记录保存在Map<String, Object>里面,String类型指字段名字,Object对应字段值
*
* @param rs
* @return List<Map<String, Object>>
*/
public List<Map<String, Object>> selectAll(ResultSet rs) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
try {
// 获取结果集结构(元素据)
ResultSetMetaData rmd = rs.getMetaData();
// 获取字段数(即每条记录有多少个字段)
int columnCount = rmd.getColumnCount();
while (rs.next()) {
// 保存记录中的每个<字段名-字段值>
Map<String, Object> rowData = new HashMap<String, Object>();
for (int i = 1; i <= columnCount; ++i) {
// <字段名-字段值>
rowData.put(rmd.getColumnName(i), rs.getObject(i));
}
// 获取到了一条记录,放入list
list.add(rowData);
}
} catch (Exception ex) {
ex.printStackTrace();
}
return list;
}
}
package top.cglzwz.Test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class App1 {
public static void main(String[] args) throws Exception {
Connection cnn = null;
Statement stm = null;
ResultSet rs = null;
String sql = " SELECT * FROM websites";
Class.forName("com.mysql.cj.jdbc.Driver");//加载数据库驱动
cnn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test1?serverTimezone=UTC","root","123");
stm = cnn.createStatement();
rs = stm.executeQuery(sql);
ResultSetToListService rstls = new ResultSetToListServiceImp();
List<Map<String, Object>> list = rstls.selectAll(rs);
// 打印list看看
for (Map<String, Object> map : list) {
// 每一条记录被包含在Map里面,迭代器打印
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
// key就是字段名, value是字段值
String key = (String) it.next();
System.out.print(String.format("%1$10s",map.get(key).toString()) + " | ");
}
System.out.println("\n----------------------------------------------------------");
}
}
}
USA | Google | 1 | 1 | https://www.google.cm/ |
----------------------------------------------------------
CN | 淘宝 | 13 | 2 | https://www.taobao.com/ |
----------------------------------------------------------
USA | 菜鸟教程 | 1000 | 3 | http://www.runoob.com |
----------------------------------------------------------
CN | 微博 | 20 | 4 | http://weibo.com/ |
----------------------------------------------------------
USA | Facebook | 3 | 5 | https://www.facebook.com/ |
----------------------------------------------------------
CN | 波波宇宙 | 13 | 7 | bobo.io |
----------------------------------------------------------
CN | 波波zwz | 13 | 10 | bobo.io |
----------------------------------------------------------