All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.xiaoyuge5201.util.ResultSetUtil Maven / Gradle / Ivy

Go to download

数据库连接工具,查询mysql、oracle、sqlserver、postgresql的数据表以及字段信息;同时支持导出数据库设计文档

The newest version!
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;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy