ResultSet基本使用

本文详细介绍了如何通过`get`方法快速获取数据库数据,并对比了使用`getMetaData()`获取表结构,进而通过反射为对象赋值的方法。展示了两种获取方式的优缺点及实际场景中的应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.直接使用get方法获取对应的类型的数据,当然需要结合while(resultset.next())

ResultSet rs = ps.executeQuery();
            if(rs.next()){
                employee=new Employee(rs.getLong(1),rs.getString(2),rs.getString(3),rs.getInt(4));
            }

2.使用getMetaData()方法,得到表结构,包括列名,列的个数,列的数据类型。然后遍历

主要使用:列的个数,列名,通过列名可以使用resultSet getObject(name)  获取对应的值,然后通过反射得到对应的属性,通过属性给对象赋值。

ResultSetMetaData rsmd = rs.getMetaData();     // 得到记录集,元素对象。

            // 通过此对象可以得到表的结构,包括,列名,列的个数,列数据类型

            while(rs.next()){
                T m = cls.newInstance();      // 通过反射得到实体对象。
                for(int i=0;i<rsmd.getColumnCount();i++){
                   String col_name = rsmd.getCatalogName(i+1);      // 获取列名
                    Object value = rs.getObject(col_name);        //获取列对应的值。
                    Field field = cls.getDeclaredField(col_name);
                   //获取对象对应的名称属性,然后给属性赋值
                    field.setAccessible(true);      // 让可以访问私有属性
                    field.set(m,value);          // 给对象私有属性赋值
                }
                list.add(m);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值