JDBC-ResultSet
JDBC-ResultSet
ResultSet(结果集对象)作用:封装了DQL查询语句的结果
ResultSet stmt.excuteQuery(sql); 执行DQL语句,返回ResultSet对象
查询结果:
boolean next(); (1) 将光标从当前位置向前移动一行 (2) 判断当前行是否为有效行
返回值:True:有效行,当前行有数据;False:无效行,当前行没有数据
xxx getXxx(参数): 获取数据
xxx: 数据类型;如:int getInt(参数); String getString(参数)
参数:int: 列的编号,从1开始,String: 列的名称
使用步骤:
- 游标向下移动一行,并判断该行是否有数据:next()
- 获取数据:getXxx(参数)
// 循环判断游标是否是最后一行末尾
while(rs.next()){
// 获取数据
rs.getXxx(参数);
}
案例:
public class JDBCDemo5_ResultSet {
/**
* 执行DQL语句
* @throws SQLException
*/
@Test
public void testResultSet() throws SQLException {
// 1. 注册驱动
// Class.forName("com.mysql.jdbc.Driver");
// 2. 获取连接
//String url = "jdbc:mysql:///db1";
String url = "jdbc:mysql:///db1?useSSL=false"; // 禁用安全连接警告
String username = "root";
String password = "1234";
Connection conn = DriverManager.getConnection(url, username, password);
// 3. 定义SQL
String sql = "SELECT * FROM account";
// 4. 获取statement对象
Statement stmt = conn.createStatement();
// 5. 执行sql
ResultSet rs = stmt.executeQuery(sql);
// 6. 处理结果。遍历rs中的所有数据
// 6.1 光标向下移动一行,并且判断当前行是否有数据
/*while (rs.next()){
// 6.2 获取数据 getXxx()
int id = rs.getInt(1);
String name = rs.getString(2);
double money = rs.getDouble(3);
System.out.println(id);
System.out.println(name);
System.out.println(money);
System.out.println("------------");
}*/
while (rs.next()){
// 6.2 获取数据 getXxx()
int id = rs.getInt("id");
String name = rs.getString("name");
double money = rs.getDouble("money");
System.out.println(id);
System.out.println(name);
System.out.println(money);
System.out.println("------------");
}
// 7. 关闭资源
rs.close();
stmt.close();
conn.close();
}
}