JDBC操作数据库,将返回的ResultSet动态封装到表对应的Entity中

将rs值动态映射到对应的entity上:

    /**
     * 将rs结果转换成对象列表
     * @param rs jdbc结果集
     * @param clazz 对象的映射类
     * return 封装了对象的结果列表
     */
    public List rsToEntity(ResultSet rs , Class clazz)
            throws SQLException, InstantiationException, IllegalAccessException{
        //结果集的元素对象
        ResultSetMetaData rsmd = rs.getMetaData();
        //获取结果集的字段的个数
        int columnCount= rsmd.getColumnCount();
        //返回结果的列表集合
        List list = new ArrayList();
        //Entity字段列表
        Field[] fields = clazz.getDeclaredFields();
        while(rs.next()){//对每一条记录进行操作
            //构造Entity实体,每一个rs对应一个entity对象存储数据
            Object obj = clazz.newInstance();
            //将每一个字段取出进行赋值
            for(int i = 1;i<=columnCount;i++){
                //结果集的某一元素的值
                Object value = rs.getObject(i);
                //寻找该元素对应的字段属性
                for(int j=0;j<fields.length;j++){
                    Field f = fields[j];
                    //根据字段名称遍历,如果匹配进行赋值
                    if(f.getName().equalsIgnoreCase(rsmd.getColumnName(i))){
                        boolean flag = f.isAccessible();
                        f.setAccessible(true);
                        //字段的obj即该字段的值
                        f.set(obj, value);
                        f.setAccessible(flag);
                    }
                }
            }
            list.add(obj);
        }
        return list;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC(Java Database Connectivity)是Java提供的一个进行数据库操作的标准接口。ResultSetJDBC用于表示查询结果的接口,而ResultSetMetaData是用于描述ResultSet的结果元数据的接口。 封装是面向对象编程的一种重要原则,它将数据与操作数据的代码进行了隔离和封装,提高了代码的可维护性和可重用性。在JDBCResultSetResultSetMetaData封装使得我们可以方便地获取和操作数据库查询的结果。 ResultSet可以通过执行SQL查询语句并将查询结果返回来创建。它提供了一系列的方法用于获取查询结果的数据,例如getString、getInt、getDate等。而ResultSetMetaData则提供了一系列的方法用于获取ResultSet的元数据,例如getColumnCount、getColumnName、getColumnType等。 通过ResultSet封装,我们可以方便地遍历查询结果的每一行数据,并提取需要的字段值。使用ResultSetMetaData封装,我们可以获取到结果每一列的元数据信息,例如列名、数据类型、是否可为空等。 这些封装使得我们在使用JDBC进行数据库操作时,能够更加方便地操作结果,减少了繁琐的代码编写。我们可以通过ResultSetResultSetMetaData提供的方法来获取查询结果的数据和元数据,并根据需要进行处理或展示。封装使得我们的代码更具有可读性和可维护性,并为后续的扩展和优化提供了良好的基础。 总之,JDBCResultSetResultSetMetaData封装让我们能够更加方便地操作数据库查询结果的数据和元数据,提高了代码的效率和可读性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值