在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(); } } } } }
执行结果如下:
有帮到你的点赞、收藏关注一下吧
需要更多教程,微信扫码即可
别忘了扫码领资料哦【高清Java学习路线图】
和【全套学习视频及配套资料】
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)