JDBC_ResultSet类_结果集对象
#前倾提要
在jdbc中执行DQL查询语句使用的方法为:executeQuery(sql);这个方法会返回一个ResultSet类的对象
ResultSet对象:结果集对象,封装查询的对象
例子:我要封装一张员工表如下
当我在java程序里面执行
String sql="select * from emp";
ResultSet rs=执行对象.executeQuery(sql);
这张员工表的信息就被封装到rs对象中。这个时候这张表就好像被添加了一个类似图片中的红色箭头的指针,我们叫做游标,初始的时候游标指向第一行,我们需要移动游标来使得游标到达我们需要取数据的那一行。
ResultSet类中的next()方法;
在ResultSet类中,有一个专门用来移动游标的方法next();当我们执行代码(接着前面封装员工表返回的对象rs)
rs.next();
游标会向下移动一行,如图
这个时候我们对列操作就可以获取数据
对列操作:ResultSet类中的getXxx(参数);方法
1.在方法getXxx()中,XXX表示你想要获取的数据类型,传入的参数可以是列名,例如接着上面,游标指向张三这行后执行
String name=rs.getString(NAME);
那么返回值就是name=张三;
2.getXxx()方法中传入的参数也可以是第几列,当游标指向张三这行给的时候,执行代码
Int id=rs.getInt(1);
那么返回值id=1,表示的是获取当前游标所在行的第一个属性的数据那么就是张三的id。
资源的关闭
获取到ResultSet对象后,使用完后需要关闭资源
close();方法
rs.close();
JDBC_ResultSet类的应用示例,通过封装员工表emp,获取第一行的name属性和id属性并打印
import java.sql.*;
//#使用select语句获取表中的数据
//ResultSet类得应用
public class JDBC_Demo6 {
public static void main(String[] args) {
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
//1.导入jar包
try {
//2.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//3.创建连接对象
conn = DriverManager.getConnection("jdbc:mysql:///db2", "root", "root");
//4.获取sql执行对象Statement
stmt = conn.createStatement();
//5.设置sql语句
String sql="select * from emp";
//6.执行sql,select语句用executeQuery方法,获取ResultSet对象
rs = stmt.executeQuery(sql);
//7.处理结果
//用ResultSet类里面得next方法移动游标到数据行上
rs.next();
//用ResultSet类得getInt方法取出当前游标所在行得id
int id = rs.getInt("id");
//用ResultSet类的getString方法取出当前游标所在的行的第二个列属性,第二个属性为name,是String类的
String name = rs.getString(2);
//输出结果查看
System.out.println(id+"---"+name);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
//在finally里关闭资源
//判断是否为空,不为空证明获取对象成功,要关闭资源
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
if (stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();