注意java中的ResultSet

本文探讨了在使用ResultSet时按列顺序读取数据的方式及可能遇到的问题,如尝试重复读取同一列数据或回头读取前一列数据时出现的java.sql.SQLException异常,并对其原因进行了分析。

ResultSet如果按照列读取,是有顺序的

 

如果重复读:

int a= rs.getInt(1);

System.out.println(rs.getInt(1));

或者回头读

rs.getInt(2);

rs.getInt(1);

 

都会出:java.sql.SQLException: No data found

 

数据是顺序读取出来的,可以想像是一个指针在动,在读取出来数据。这些都是道听途说,我没有实验,不过感觉应该靠谱。

 

ResultSetJava中用于处理查询结果集的接口,它提供了一系列方法用于获取和操作查询得到的数据。以下是ResultSet的用法介绍: 1. 创建ResultSet对象 ResultSet对象通常是通过执行一个SQL查询语句得到的,例如: ``` Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM mytable"); ``` 其中,conn是一个已经建立好的数据库连接对象。 2. 获取结果集中的数据 ResultSet提供了一系列的getXXX()方法用于获取查询结果集中的数据,其中XXX可以是各种Java数据类型,如getInt()、getString()、getDouble()等。例如: ``` while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); double price = rs.getDouble("price"); // ... } ``` 3. 移动游标位置 ResultSet中的游标指向当前行,可以通过调用next()方法将游标移动到下一行,如果当前行不存在则返回false。例如: ``` while (rs.next()) { // ... } ``` 4. 检索结果集的元数据 ResultSetMetaData是一个接口,提供了有关ResultSet对象中列的信息,例如列名、数据类型、精度等。可以通过调用ResultSet的getMetaData()方法获取ResultSetMetaData对象,然后使用该对象的方法获取元数据信息。例如: ``` ResultSetMetaData rsmd = rs.getMetaData(); int numColumns = rsmd.getColumnCount(); for (int i = 1; i <= numColumns; i++) { String columnName = rsmd.getColumnName(i); String columnType = rsmd.getColumnTypeName(i); int columnPrecision = rsmd.getPrecision(i); // ... } ``` 以上就是ResultSet的基本用法介绍。需要注意的是,使用完ResultSet对象之后,需要调用close()方法关闭结果集,以释放资源。例如: ``` rs.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值