while (rs.next()) 与 if(rs.next())的区别

Posted 子言小竹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了while (rs.next()) 与 if(rs.next())的区别相关的知识,希望对你有一定的参考价值。

如果说是"判断结果集里有没有值" 那么用if(rs.next) 

while是用来做循环输出的 换句话说 就是"如果结果集里还有值" 没有则停止循环 这个一般在JSP 做 显示 用.

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 
所以最终的代码可以写为:
    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();
            }
        //}
    }

说的简单的话就是


while(rs.next())  // 就是 将 rs 全部进行读取
if(rs.next())  // rs 进行读取 一次 判断 是否 有数据

 

以上是关于while (rs.next()) 与 if(rs.next())的区别的主要内容,如果未能解决你的问题,请参考以下文章

while (rs.next()) 与 if(rs.next())的区别

while(rs1.next()) 不返回任何值

jdbc如何判断记录集是否为空?用啥方法?ResultSet本身是否根本就没有这样的方法?

jsp中rt.next()指的是啥?还有rs.next()与rt.next()有啥区别?一直不太清楚

jsp新手询问while rs.next()嵌套循环问题

“如果(rs.next())”是啥意思?