博客
关于我
数据库查询结果操作类
阅读量: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/

    你可能感兴趣的文章
    OpenCV中基于已知相机方向的透视变形
    查看>>
    OpenCV中的监督学习
    查看>>
    opencv中读写视频
    查看>>
    opencv之cv2.findContours和drawContours(python)
    查看>>
    opencv之namedWindow,imshow出现两个窗口
    查看>>
    opencv之模糊处理
    查看>>
    Opencv介绍及opencv3.0在 vs2010上的配置
    查看>>
    OpenCV使用霍夫变换检测图像中的形状
    查看>>
    opencv保存图片路径包含中文乱码解决方案
    查看>>
    OpenCV保证输入图像为三通道
    查看>>
    OpenCV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    opencv图像分割2-GMM
    查看>>
    opencv图像分割3-分水岭方法
    查看>>
    opencv图像切割1-KMeans方法
    查看>>
    OpenCV图像处理篇之阈值操作函数
    查看>>
    opencv图像特征融合-seamlessClone
    查看>>
    OpenCV图像的深浅拷贝
    查看>>
    OpenCV学习(13) 细化算法(1)(转)
    查看>>
    OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
    查看>>
    OpenCV学堂 | CV开发者必须懂的9种距离度量方法,内含欧氏距离、切比雪夫距离等(建议收藏)
    查看>>