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

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

    你可能感兴趣的文章
    Nginx反向代理是什么意思?如何配置Nginx反向代理?
    查看>>
    nginx反向代理解决跨域问题,使本地调试更方便
    查看>>
    nginx启动脚本
    查看>>
    Nginx在Windows下载安装启动与配置前后端请求代理
    查看>>
    Nginx多域名,多证书,多服务配置,实用版
    查看>>
    nginx开机启动脚本
    查看>>
    nginx异常:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf
    查看>>
    nginx总结及使用Docker创建nginx教程
    查看>>
    nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128
    查看>>
    nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in usrlocalnginxconfnginx.conf128
    查看>>
    nginx日志分割并定期删除
    查看>>
    Nginx日志分析系统---ElasticStack(ELK)工作笔记001
    查看>>
    Nginx映射本地json文件,配置解决浏览器跨域问题,提供前端get请求模拟数据
    查看>>
    nginx最最最详细教程来了
    查看>>
    Nginx服务器---正向代理
    查看>>
    Nginx服务器上安装SSL证书
    查看>>
    Nginx服务器的安装
    查看>>
    Nginx模块 ngx_http_limit_conn_module 限制连接数
    查看>>
    nginx添加模块与https支持
    查看>>
    Nginx用户认证
    查看>>