java list resultset_Java工具类 通过ResultSet对象返回对应的实体List集合
自从学了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集合相关推荐
- java+基于dom4j工具类_基于dom4j的xml映射实体的工具类(java)
基于dom4j的xml映射实体的工具类(java) 工具是基于dom4j,使用反射使实体属性与xml的标签关联,目前兼容List,Map后续更新兼容. 历史更新: 发布-2019-6-22 增加注解@ ...
- java轻量级并行工具类_16 个超级实用的 Java 工具类
原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...
- 整理Java相关的工具类Utils,持续更新中,建议收藏【目前更新至24】
文章目录 1.BigDecimalUtil 2.CaptchaUtil 图片验证码工具类 3.CoordinateTransformUtil 坐标系转换工具类 4.DateUtil 日期加减工具类 5 ...
- java.util.zip 用法,Java压缩文件工具类ZipUtil使用方法代码示例
本文实例通过Java的Zip输入输出流实现压缩和解压文件,前一部分代码实现获取文件路径,压缩文件名的更改等,具体如下: package com.utility.zip; import java.io. ...
- java基于HuTool工具类ExcelWriter合并单元格
** java基于HuTool工具类ExcelWriter合并单元格 ** 1.基于HuTool工具类ExcelWriter合并单元格并且使用 jdk1.8 lambda表达式 效果如下: 用姓名和编 ...
- Java导入Excel工具类使用教程
前言: 本工具类提供了Excel导入功能,通过反射机制将Excel中数据映射到实体类中,从而获取Excel数据,工具类依赖org.apache.poi包.支持RESTful API,支持Spring ...
- Java 时间间隔计算工具类
Java 时间间隔计算工具类 一.工具类-DateIntervalUtil package com.example.demotest.util;import java.text.DecimalForm ...
- Java实现AES工具类(包含CBC和ECB)
目录 一.简介 二.AES工具类 三.实践 3.1 AES之ECB模式加密 3.2 AES之ECB模式解密 3.3 AES之CBC模式加密 3.4 AES之CBC模式解密 结语 一.简介 密码学中 ...
- java 图片image工具类,ImageUtil.java
1.java 图片image工具类,ImageUtil.java package com.broadway.numpeople.utils;import java.awt.Color; import ...
最新文章
- 三因素三水平正交表l9_影响多腔导管挤出机头设计的关键因素
- 4028: [HEOI2015]公约数数列
- 数字图像处理-0.绪论
- html字符串变量,字符串变量中的Python HTML
- SpringBoot WEB 核心原理
- tomcat组播实现session一致性_java会话技术-Session
- B,KB,MB,GB之间换算
- idm下载速度只有几十kb idm下载速度慢解决办法
- 微机大作业—— 24秒倒计时器
- 读浅墨博客 十一 笔记
- PDF.js 实现pdf分页加载的前端优化(实现按需加载)-前端的demo也已经上传
- html中并列式的应用,并列式结构梳理
- ArcGIS Enterprise托管服务/托管服务器/托管数据库-之“托管”理解
- 【自然语言处理】【知识图谱】知识图谱表示学习(三):SE、SME、LFM、RESCAL、HOLE
- 程序员啊,他又加班了
- 七彩视界开源全解公益版,全新后台非常漂亮,全网首发!
- Winform最基础的DBHelper类
- ubuntu 安装binutils 链接存下
- InSAR基础:雷达回波信号的构成(什么是振幅?什么是相位?)
- 【大数据实战项目二】Spark环境和Mongo、ES数据库安装,以及数据库与Spark,Python联动