ResultSet接口
使用SQL中的SELECT语句可以将数据库的全部结果查询出来,在JDBC的操作中数据库的所有查询记录将使用ResultSet进行接收,并使用ResultSet显示内容。
ResultSet接口的常用操作方法
No. | 方法 | 类型 | 描述 |
1 | boolean next() throws SQLException | 普通 | 将指针移到下一行 |
2 | int getInt(int columnIndex) throws SQLException | 普通 | 以整数形式按列的编号取得指定列的内容 |
3 | int getInt(String columnName) throws SQLException | 普通 | 以整数形式取得指定列的内容 |
4 | float getFloat(int columnIndex) throws SQLException | 普通 | 以浮点数的形式按列的编号取得指定列的内容 |
5 | float getFloat(String columnName) throws SQLException | 普通 | 以浮点数的形式取得指定列的内容 |
6 | String getString(int columnIndex) throws SQLException | 普通 | 以字符串的形式按列的编号取得指定列的内容 |
7 | String getString(String columnName) throws SQLException | 普通 | 以字符串的形式取得指定列的内容 |
8 | Date getDate(int columnIndex) throws SQLException | 普通 | 以Date的形式按列的编号取得指定列的内容 |
9 | Date getDate(String columnName) throws SQLException | 普通 | 以Date的形式取得指定列的内容 |
从user表中查询数据
public static void main(String[] args) throws Exception {
...
ResultSet rs = null ; // 保存查询结果
String sql = "SELECT id,name,password,age,sex,birthday FROM user" ;
...
stmt = conn.createStatement() ; // 实例化Statement对象
rs = stmt.executeQuery(sql) ; // 实例化ResultSet对象
while(rs.next()){ // 指针向下移动
int id = rs.getInt("id") ; // 取得id内容
String name = rs.getString("name") ; // 取得name内容
String pass = rs.getString("password") ; // 取得password内容
int age = rs.getInt("age") ; // 取得age内容
String sex = rs.getString("sex") ; // 取得sex内容
java.util.Date d = rs.getDate("birthday") ; // 取得birthday内容
System.out.print("编号:" + id + ";") ; // 输出编号
System.out.print("姓名:" + name + ";") ; // 输出姓名
System.out.print("密码:" + pass + ";") ; // 输出密码
System.out.print("年龄:" + age + ";") ; // 输出年龄
System.out.print("性别:" + sex + ";") ; // 输出性别
System.out.println("生日:" + d) ; // 输出生日
System.out.println("---------------------------");// 换行
}
rs.close() ; // 关闭结果集
stmt.close() ; // 操作关闭
conn.close() ; // 数据库关闭
}}
通过编号取出数据
在执行查询语句的时候,是将数据库中的查询结果返回到内存之中,所以rs.next()的作用,是将返回的结果依次判断,如果有结果,则使用getXxx()语句的形式将内容取出。当然,如果感觉以上代码再取出数据的时候输入列的名称比较麻烦,则可以按取值的顺序采用编号的形式将内容取出。
while(rs.next()){ // 指针向下移动
int id = rs.getInt(1) ; // 取得id内容
String name = rs.getString(2) ; // 取得name内容
String pass = rs.getString(3) ; // 取得password内容
int age = rs.getInt(4) ; // 取得age内容
String sex = rs.getString(5) ; // 取得sex内容
java.util.Date d = rs.getDate(6) ; // 取得birthday内容
...
}