获取ResultSet记录列数核心代码
代码如下 | 复制代码 |
ResultSetMetaData rsmd = this.rs.getMetaData(); this.columnCount = rsmd.getColumnCount(); |
java获取数据行数的代码如下:
代码如下 | 复制代码 |
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSet rs = stmt.executeQuery(sql); rs.last(); int length = rs.getRow(); |
length的值就是行数了。如果在获取了行数后,还需要继续使用当前数据集rs,则需要运行rs.beforeFirst();将游标回到初始位置。
Statement创建的通用格式为:
代码如下 | 复制代码 |
Statement stmt=con.createStatement(int type,int concurrency); |
实例1、改用select count语句,然后直接从ResultSet里面获取结果:
代码如下 | 复制代码 |
try { Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("select count(*) as rowCount from tableName"); resultSet.next(); int rowCount = resultSet.getInt("rowCount"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } |
实例2.遍历Resultset,用一个变量记录行数。代码如下
代码如下 | 复制代码 |
int count = 0; |
实例3
代码如下 | 复制代码 |
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSet rs = stmt.executeQuery(sql); rs.last(); int length = rs.getRow(); |
length的值就是行数了。
如果在获取了行数后,还需要继续使用当前数据集rs,则需要运行rs.beforeFirst();将游标回到初始位置。