自从学了JDBC用多了像一下这种代码:

ResultSet rs = this.executeQuery(sql, objs);

List list = new Array();

if(rs.next()){

xxx x = new xxx();

x.setxxx(rs.getString("xxx"));

x.setsss(rs.getString("sss"));

list.add(x);

}

这类相似的代码每天都在用,每天都在copy,相信大家早就已经烦了

今天!Today!Java程序员的福利来了

最近生病在家闲着无聊写了一个工具类:

通过传入一个

ResultSet对象和相应的实体类对象。可返回相应的List集合

终于不用Ctrl+c  Ctrl+v了!!!!

用到技术:

Java反射机制

泛型类

实现思路:

首先既然是工具类当然要做到 高可用,不然也没什么意义

既然是通过一个ResultSet对象来返回一个实体集合,是个人都可以想到这个实体类一定是个不确定因素。

ok , 想到 的是泛型类,定义一个虚拟类型T , 传参进来确切类型后然后通过反射来获得这个类的一系列信息

然后进入赋值+list.add()操作

我给这个工具类起名叫:DBRsHelp  (发现自己命名水准越来越高了小小自恋一下下())

废话不多说,上栗子(命名不规范,勿喷):

package cn.news.util;

import java.lang.reflect.Field;

import java.sql.ResultSet;

import java.util.ArrayList;

import java.util.List;

import cn.news.dao.BaseDAO;

import cn.news.entity.Users;

/**

*

* @author: 房上的猫

*

* @time: 下午3:49:32

*

* @博客地址: https://www.cnblogs.com/lsy131479/

*

*/

//泛型类,T:虚拟类型

public class DBRsHelp {

public List util(T t, ResultSet rs) throws Exception {

// 创建一个对应的空的泛型集合

List list = new ArrayList();

// 反射出类类型(方便后续做操作)

Class c = t.getClass();

// 获得该类所有自己声明的字段,不问访问权限.所有。所有。所有

Field[] fs = c.getDeclaredFields();

// 大家熟悉的操作,不用多说

if (rs != null) {

while (rs.next()) {

// 创建实例

t = (T) c.newInstance();

// 赋值

for (int i = 0; i < fs.length; i++) {

/*

* fs[i].getName():获得字段名

*

* f:获得的字段信息

*/

Field f = t.getClass().getDeclaredField(fs[i].getName());

// 参数true 可跨越访问权限进行操作

f.setAccessible(true);

/*

* f.getType().getName():获得字段类型的名字

*/

// 判断其类型进行赋值操作

if (f.getType().getName().equals(String.class.getName())) {

f.set(t, rs.getString(fs[i].getName()));

} else if (f.getType().getName().equals(int.class.getName())) {

f.set(t, rs.getInt(fs[i].getName()));

}

}

list.add(t);

}

}

// 返回结果

return list;

}

//测试一下下

public static void main(String[] args) throws Exception {

DBRsHelp util = new DBRsHelp();

Users u = new Users();

String sql = "select * from news_users";

BaseDAO dao = new BaseDAO();

dao.rs = dao.executeQuery(sql);

List util1 = util.util(u, dao.rs);

for (Users users : util1) {

System.out.println("uname:" + users.getUname());

System.out.println("upwd:" + users.getUpwd());

System.out.println("ustart:" + users.getUstate());

System.out.println("usessionid:" + users.getUsessionid());

System.out.println("================================================");

}

}

}

成功!!!哈哈哈

java list resultset_Java工具类 通过ResultSet对象返回对应的实体List集合相关推荐

  1. java+基于dom4j工具类_基于dom4j的xml映射实体的工具类(java)

    基于dom4j的xml映射实体的工具类(java) 工具是基于dom4j,使用反射使实体属性与xml的标签关联,目前兼容List,Map后续更新兼容. 历史更新: 发布-2019-6-22 增加注解@ ...

  2. java轻量级并行工具类_16 个超级实用的 Java 工具类

    原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...

  3. 整理Java相关的工具类Utils,持续更新中,建议收藏【目前更新至24】

    文章目录 1.BigDecimalUtil 2.CaptchaUtil 图片验证码工具类 3.CoordinateTransformUtil 坐标系转换工具类 4.DateUtil 日期加减工具类 5 ...

  4. java.util.zip 用法,Java压缩文件工具类ZipUtil使用方法代码示例

    本文实例通过Java的Zip输入输出流实现压缩和解压文件,前一部分代码实现获取文件路径,压缩文件名的更改等,具体如下: package com.utility.zip; import java.io. ...

  5. java基于HuTool工具类ExcelWriter合并单元格

    ** java基于HuTool工具类ExcelWriter合并单元格 ** 1.基于HuTool工具类ExcelWriter合并单元格并且使用 jdk1.8 lambda表达式 效果如下: 用姓名和编 ...

  6. Java导入Excel工具类使用教程

    前言: 本工具类提供了Excel导入功能,通过反射机制将Excel中数据映射到实体类中,从而获取Excel数据,工具类依赖org.apache.poi包.支持RESTful API,支持Spring ...

  7. Java 时间间隔计算工具类

    Java 时间间隔计算工具类 一.工具类-DateIntervalUtil package com.example.demotest.util;import java.text.DecimalForm ...

  8. Java实现AES工具类(包含CBC和ECB)

    目录 一.简介 二.AES工具类 三.实践 3.1 AES之ECB模式加密 3.2 AES之ECB模式解密 3.3 AES之CBC模式加密 3.4 AES之CBC模式解密 结语 一.简介   密码学中 ...

  9. java 图片image工具类,ImageUtil.java

    1.java 图片image工具类,ImageUtil.java package com.broadway.numpeople.utils;import java.awt.Color; import ...

最新文章

  1. 三因素三水平正交表l9_影响多腔导管挤出机头设计的关键因素
  2. 4028: [HEOI2015]公约数数列
  3. 数字图像处理-0.绪论
  4. html字符串变量,字符串变量中的Python HTML
  5. SpringBoot WEB 核心原理
  6. tomcat组播实现session一致性_java会话技术-Session
  7. B,KB,MB,GB之间换算
  8. idm下载速度只有几十kb idm下载速度慢解决办法
  9. 微机大作业—— 24秒倒计时器
  10. 读浅墨博客 十一 笔记
  11. PDF.js 实现pdf分页加载的前端优化(实现按需加载)-前端的demo也已经上传
  12. html中并列式的应用,并列式结构梳理
  13. ArcGIS Enterprise托管服务/托管服务器/托管数据库-之“托管”理解
  14. 【自然语言处理】【知识图谱】知识图谱表示学习(三):SE、SME、LFM、RESCAL、HOLE
  15. 程序员啊,他又加班了
  16. 七彩视界开源全解公益版,全新后台非常漂亮,全网首发!
  17. Winform最基础的DBHelper类
  18. ubuntu 安装binutils 链接存下
  19. InSAR基础:雷达回波信号的构成(什么是振幅?什么是相位?)
  20. 【大数据实战项目二】Spark环境和Mongo、ES数据库安装,以及数据库与Spark,Python联动

热门文章

  1. python3-开发进阶补充Django中的文件的上传
  2. Java中的变量数据类型补充
  3. Android软件测试Monkey测试工具
  4. Python爬虫实战(一):爬糗事百科段子
  5. 软件工程第五章3(1)
  6. 教你50招提升ASP.NET性能(二十六):对于开发人员的数据库性能技巧
  7. flutter网络dio框架get请求使用总结
  8. IOS-—UICollectionView使用综述(二 )(基础篇--画廊展示图片,瀑布流展示图片)
  9. 利用os模块生成 文件夹和文件
  10. 微信小程序_小程序开发框架