java resultset 为空_Java中的ResultSet可以'null'吗?

我有一个非常基本的代码执行一个select查询并返回一个布尔值,具体取决于结果集是否为空 .

public boolean checkIfUserHasPreferences(String username){

ResultSet rs = null;

boolean checkBoolean = false;

try {

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

con = DriverManager.getConnection(Messages.getString("OracleUserManagement.0"), Messages.getString("OracleUserManagement.1"), Messages.getString("OracleUserManagement.2")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

PreparedStatement statement = con.prepareStatement("SELECT USERNAME FROM USER_PREFERENCES WHERE USERNAME = ?");

statement.setString(1, username);

rs = statement.executeQuery();

if (rs == null){

System.out.println("I checked it was true!");

checkBoolean = true;

} else {

System.out.println("I checked it was false!");

checkBoolean = false;

}

con.commit();

con.close();

} catch (SQLException e) {

e.printStackTrace();

}

return checkBoolean;

}

让我感到困惑的是,即使表/数据库是空的,它总是打印出“我检查它是假的!” .

这是因为即使结果集返回0行,它也不是= null?我应该使用while(rs.next())来检查吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值