【javaWeb】从数据库获得数据结果集:ResultSet的使用

我们知道,在c#中,有ado.net这种东西,其中有sqlreader来获取数据库的结果集。

在javawb里,这个重任由ResultSet来担任。

例:

        CallableStatement call = null;
        int result=-1;
        try {
            //使用数据连接池和数据源
            Context context = new InitialContext();
            Context envContext = (Context) context.lookup("java:comp/env/");
            DataSource ds = (DataSource) envContext.lookup("jdbc/testDS");
            Connection conn = ds.getConnection();
            
            //使用MYSQL的储存方法
            call =  conn.prepareCall("{call select_id_fromCourseName(?)}");
            //设置储存方法参数
            call.setString(1,courseName);
            //执行数据库,返回到ResultSet 里
            ResultSet rs= call.executeQuery();
            
            //这里就是ResultSet 读取返回的数据
            while (rs.next()){
                result=rs.getInt(1);
            }
            //下一行这种方法是没有效果的
            //result=rs.getInt("courseId");
            rs.close();
            call.close();
            conn.close();

值得一提:

call.execute();返回布尔,call.executeQuery();返回ResultSet。

详解:

ResultSet类是一种数据库查询结果存储类,就是当查询数据库的时候,可以将查询的结果放在具体的ResultSet对象中,其实我们把这种存储查询结果的ResultSet对象叫做ResultSet结果集。比如我们用aaa表示一个ResultSet对象。

那么查询的结果无非就是一些符合查询条件的记录集,ResultSet结果集有一个索引指针,最初这个指针是指向第一条记录的前一个位置,也就是没有指向任何内容,使用aaa.next()方法就会使指针往后移动指向下一个记录,所以一定要先执行一次next()函数才会让指针指向第一条记录。正因为如此,直接【result=rs.getInt("courseId");】这样是没用的。

一条记录可能会有好几个属性的内容,那么我们可以使用getXXX(int index)方法类获得具体属性的值,XXX代表以什么样的数据类型方式来读取内容,当指针指向一条记录的时候,比如这条记录的内容就是:0001   张三   3岁。而且这三个属性的值的类型全是String类型,那么我们可以使用aaa.getString(1)来获得内容0001,使用getString(2)来获得内容张三。

值得注意:ResultSet的一条记录的索引位置是从1开始的,而不是从0开始。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值