这样也行?(jdbc获取结果集)jdbc结果集已耗尽,JDBC_ResultSet类_结果集对象,java 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执行对象Statementstmt = 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方法取出当前游标所在行得idint 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();}}}}}
执行结果如下:
版权申明
本文系作者 @河马 原创发布在河马博客站点。未经许可,禁止转载。
暂无评论数据