com.github.xiaoyuge5201.util.ResultSetUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of datasource-spring-boot-starter Show documentation
Show all versions of datasource-spring-boot-starter Show documentation
数据库连接工具,查询mysql、oracle、sqlserver、postgresql的数据表以及字段信息;同时支持导出数据库设计文档
package com.github.xiaoyuge5201.util;
import java.lang.reflect.Field;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
/**
* ResultSet 转 实体类
* @author xiaoyuge
* @since : 2021/2/5 9:43
*/
public class ResultSetUtil {
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 (Field field : fs) {
/*
* fs[i].getName():获得字段名
*
* f:获得的字段信息
*/
Field f = t.getClass().getDeclaredField(field.getName());
// 参数true 可跨越访问权限进行操作
f.setAccessible(true);
/*
* f.getType().getName():获得字段类型的名字
*/
// 判断其类型进行赋值操作
if (f.getType().getName().equals(String.class.getName())) {
f.set(t, rs.getString(field.getName()));
} else if (f.getType().getName().equals(int.class.getName())) {
f.set(t, rs.getInt(field.getName()));
}
}
list.add(t);
}
}
// 返回结果
return list;
}
}