while(rs.next())和if(rs.next())

首先要明确几点:

1、rs = stmt.exeQuery(sql)后,rs肯定不会为null,注意,是rs对象不会为null,而不是其包含的result

2、既然rs不会为null,所以在rs = stmt.exeQuery(sql)后,使用while(rs.next())或者if(rs.next())时就不用判断rs != null;
3、rs.next时,游标最先是指向第一条记录前的位置,所以第一次rs.next后,游标指向的正好是第一条记录(如果有的话)

4、要判断rs的结果是否为空,只要使用一次rs.next方法就行了,如果它返回为false,则证明rs的结果为null

5、综合:while(rs.next()){ }查询是否有下一条记录,如果有,则进行循环{}里内容,if(rs.next()){}判断rs里是否有记录,如果有,则执行{}里内容。

   while(rs.next())查询多条记录(按记录的行查), if(rs.next())查询一条记录(按记录的列查)

补充:select * from ...   用while(rs.next())

        select count(*) from ...  用if(rs.next())

所以最终的代码可以写为:
    public void run() {
        /** 读取数据库** */
        DbTestConn conn = new DbTestConn();
        String sql = "select * from mo_info where mo_state = '1'";
        ResultSet rs = conn.exeQuery(sql);
        //while (!isNull) {
            try {
                while (rs.next()) {
                    tr.setId(rs.getInt(1));
                    tr.setUser(rs.getString(2));
                    tr.setPwd(rs.getString(3));
                    //isNull = false;
                }
            } catch (SQLException e) {
                //isNull = true;
                e.printStackTrace();
            }
        //}
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值