【Java】将ResultSet封装为Bean对象

和其他的文章一样,也是利用反射封装,最后返回list集合
且能适应不同的数据类型(Data除外)

public class jdbcUtils {
    /**
     * MySQL数据库将result set风筝为Bean对象,需要数据库字段名和兵对象属性名一致(不区分大小写)
     * @param resultSet
     * @param beanClass
     * @param <T>
     * @return 返回Bean对象数组
     * @throws Exception
     */
    public static <T> List<T> ResultSetToBean(ResultSet resultSet, Class beanClass) throws Exception {
        // 获取Bean对象内的所有属性
        Field[] fields = beanClass.getDeclaredFields();
        List<T> beanList = new ArrayList<>();
        if (resultSet != null) {
            while (resultSet.next()) {
                // 每当有一行数据就创建一个Bean对象
                T object = (T) beanClass.newInstance();
                for (Field field : fields) {
                    String fieldName = field.getName();
                    // 利用字符串拼接,将属性名的首字母变为大写,获取对应的set方法。
                    Method setField = beanClass.getMethod("set" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1), field.getType());
                    // 利用MySQL数据库不区分大小写的性质获取对应字段的值。
                    setField.invoke(object,resultSet.getObject(fieldName.toUpperCase()));
                }
                beanList.add(object);
            }
        }
        return beanList;
    }
}

测试方法

public void test() throws Exception {
        connection = jdbcUtils.getConnection();
        ps = connection.prepareStatement("select * from t_book");
        resultSet = ps.executeQuery();
        List<Book> books = jdbcUtils.ResultSetToBean(resultSet, Book.class);
        for (Book book: books) {
            System.out.println(book.toString());
        }
    }

测试结果图
数据库的数据
程序运行结果

个人也在慢慢的自学java web如果有哪里不好,敬请指正

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值