当数据库中的行值为NULL时使用ResultSet

时间:2017-04-05 15:16:42

标签: java netbeans

直接查询数据库时,结果为NULL,现在我正在使用ResultSet检查结果是否为空,执行其他操作,如果结果不为NULL,则打印结果:这是我的COde:

if(rs4 != null) {
            while(rs4.next()) {
            String ad =rs4.getString("number");                    
            System.out.println(ad);
            }
        }
        else{
            System.out.println("ZERO ENTRIES");
        }` 

数据库行值为NULL,因为我的查询没有返回任何行,所以我希望else语句可以运行,但现在if语句仍然被删除并打印null

3 个答案:

答案 0 :(得分:1)

直接查询数据库时看到的是NULL number列的值,而不是行的值。

这就是为什么在non-null的{​​{1}}列中获得NULL值为number的行。

答案 1 :(得分:0)

您可以使用以下内容:

if (!resultSet.isBeforeFirst() ) {    
    System.out.println("No data"); 
} 

或者:

if (!resultSet.next() ) {
    System.out.println("no data");
} 

答案 2 :(得分:0)

我终于找到了解决问题的方法。使用rs.getInt(),每当行值为0时,这将返回NULL,并在找到行时返回新的行值。

这解决了它: - )

while(rs.next())
        {
            // using rs.getInt() will return zero when row value from your query is NULL
            int i = rs.getInt("number");
            if(i<0) //check if zero
            {
                // When result is NULL i =0
                System.out.println("your value");
            }else{
                //When there are rows found from database i > 0
                String ad=rs.getString("number");
                System.out.println(ad);
            }
        }`