博客
关于我
数据库查询结果操作类
阅读量:604 次
发布时间:2019-03-12

本文共 1572 字,大约阅读时间需要 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>包装,提升了可读性
  • 去除了不必要的line comment
  • 计算字段名改为getColumnName(i+1)更符合 JDBC 的标准使用规范
  • 调整代码格式,使其更符合一般编码规范
  • 创建对象实例的方式使用try-with-resources改写,提升了代码简洁性
  • 调整方法调用方式(使用invoke),更改进了循环结构
  • 提升代码注释的清晰度,更易理解
  • 去除了冗余的参数描述,保持了简洁性
  • 添加了transfer nickname,避免直接 disclosure源代码信息
  • 整体段落结构更清晰,适合技术文档阅读
  • 转载地址:http://zgtxz.baihongyu.com/

    你可能感兴趣的文章
    python基础系列四:字符串,列表,字典,元组之间的转换
    查看>>
    python基础篇(9):模块
    查看>>
    python基础篇(8):异常处理
    查看>>
    python基础篇(8):字符串常用处理汇总
    查看>>
    python基础篇(7):函数进阶知识点
    查看>>
    python基础篇(6):global关键字
    查看>>
    python基础篇(5):None类型
    查看>>
    python基础篇(4):range语句
    查看>>
    python基础篇(3):print()补偿知识点
    查看>>
    python基础篇(2):字符串扩展知识点
    查看>>
    python基础篇(1):type()
    查看>>
    python基础篇(15):闭包
    查看>>
    python基础篇(14):多态
    查看>>
    python基础篇(13):类型注解
    查看>>
    python基础篇(12):继承
    查看>>
    python基础篇(11):封装
    查看>>
    python基础篇(10):自定义包
    查看>>
    python基础篇(10):类、对象与构造方法
    查看>>
    python系列【仅供参考】:python测试javaSDK总结
    查看>>
    python系列【仅供参考】:python斗地主
    查看>>