本文共 1608 字,大约阅读时间需要 5 分钟。
import java.ResultSet;import java.util.ArrayList;import java.sql.ResultSetMetaData;public class ResultSetUtil { /** * 将数据库查询结果转换为对象类实例 * @param rs 数据库查询结果 * @param cls 对应的对象类 * @return 转换后的对象列表 * @throws Exception 可能出现的异常 */ public static List RSToObj(ResultSet rs, Class cls) throws Exception { List list = new ArrayList(); // 获取查询结果集合的字段信息 ResultSetMetaData metaData = rs.getMetaData(); List columnNames = new ArrayList(); for (int i = 0; i < metaData.getColumnCount(); i++) { columnNames.add(metaData.getColumnName(i + 1)); // field name } // 获取目标对象类的所有方法 Method[] methods = cls.getDeclaredMethods(); while (rs.next()) { // 创建对象实例 Object t = cls.getDeclaredConstructor().newInstance(); // 把结果集数据映射到对象的相应属性中 for (Method method : methods) { for (String columnName : columnNames) { if (method.getName().equalsIgnoreCase("set" + columnName)) { method.invoke(t, rs.getObject(columnName)); break; } } } list.add(t); } return list; }}
改写说明:
<code>包装,提升了可读性getColumnName(i+1)更符合 JDBC 的标准使用规范转载地址:http://zgtxz.baihongyu.com/