首页 > 解决方案 > 结果集 rs.next() 的 rs 变量如何为真,即使它们在第二个表 b 中没有记录

问题描述

表一

roll
101

表b

enter code here空集

//code of java netbeans 

//table a 

    public void t1()
    {

         try
    {

        String s1 = "select max(roll) as 'rn' from a;";
        rs=stmt.executeQuery(s1);

         if(rs.next())
        {
        rn = rs.getInt("rn");
        jTextField1.setText(rn+"");
        }



    }catch(Exception e)
    {}



//table b

    public void t2()
    {
    try
    {

        String s2 = "select max(ecode)+1 as 'ec' from b;";
        rs=stmt.executeQuery(s2);
        if(rs.next())
        {

        en = rs.getInt("ec");


        }
        else
        {

         en = 2001;
        }

        jTextField2.setText(en+"");
    }catch(Exception e)
    {
    }
    }

为什么执行 t2 方法中的 if 语句虽然我们在表 b 中没有任何记录

标签: javamysqlresultset

解决方案


max(ecode)

如果表中没有行且不存在group by子句,则该max()函数返回包含 value 的单行null


推荐阅读