博客
关于我
数据库查询结果操作类
阅读量: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 数据预处理
    查看>>
    python 文件类型检测 linux和windows都可以用
    查看>>
    Python多处理池,加入;不等待继续?
    查看>>
    Python 无法安装包
    查看>>
    python 日历小部件 - 返回用户选择的日期
    查看>>
    Python 日志管理封装
    查看>>
    python 时间函数小总结
    查看>>
    Python 是否优化尾递归?
    查看>>
    Python 更新set
    查看>>
    Python 最强 IDE 详细使用指南!
    查看>>
    Python 有一个不可变的列表吗?
    查看>>
    Python 机器学习入门之 pandas 的使用
    查看>>
    Python 机器学习实战
    查看>>
    python 杀死子进程_subprocess.popen.kill杀死所有子进程
    查看>>
    Python 条件语句与循环结构详解
    查看>>
    Python 条件运算符解决方法如何工作?
    查看>>
    python 枚举类型
    查看>>
    Python 查询 Mongodb数据库
    查看>>
    python 查询Neo4j多节点的多层关系
    查看>>