需要动态获取某表,根据rs.getString(列数)。所以下面很有用。
· 在Java中,获得ResultSet的总行数的方法有以下几种。
第一种:利用ResultSet的getRow方法来获得ResultSet的总行数
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rset = stmt.executeQuery("select * from yourTableName");
rset.last();
int rowCount = rset.getRow(); //获得ResultSet的总行数
第二种:利用循环ResultSet的元素来获得ResultSet的总行数
ResultSet rset = stmt.executeQuery("select * from yourTableName");
int rowCount = 0;
while(rset.next()) {
rowCount++;
}
rowCount就是ResultSet的总行数。
第三种:利用sql语句中的count函数获得ResultSet的总行数
ResultSet rset = stmt.executeQuery("select count(*) totalCount from yourTableName");
int rowCount = 0;
if(rset.next()) {
rowCount=rset .getInt("totalCount ");
}
rowCount就是ResultSet的总行数。
· **************************************************************************************
· Java中获得ResultSet的总列数是非常简单事情,因为Java中ResultSet提供了ResultSetMetaData工具类,ResultSetMetaData 是ResultSet的元数据的集合说明。
java获得ResultSet总列数的代码如下:
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rset = stmt.executeQuery("select * from yourtable");
ResultSetMetaData rsmd = rset.getMetaData() ;
int columnCount = rsmd.getColumnCount();
columnCount 就是ResultSet的总列数。
· **************************************************************************************
转自 http://cheneyph.iteye.com/blog/477829
比如我自己写的
public List<List> findAllString() {
List<List> filds = new ArrayList<List>();
List<String> fild = null;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = ConnectionSource.getConnection();
String sql = "String sqll = "select * from ( select * from pac_material_bill_print_v where 1=1 and bill_no='0003100602-0001' and warehouse_code='665' and dept_code='0003' and send_code='665' ) where rownum < 10000";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
ResultSetMetaData rsmd = ps.getMetaData() ;
int columnCount = rsmd.getColumnCount(); //总列数
while (rs.next()) {
System.out.println("****************************");
fild = new ArrayList<String>();
for (int i = 1; i<= columnCount; i++) {
System.out.println(rs.getString(i));//循环获取所有列的值
fild.add(rs.getString(i));//添加到我需要的list里面。
}
filds.add(fild);
System.out.println("****************************");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return filds;//返回一个list到前台
}