JAVA中ResultSet结果集为空判断

本文讲述了在Java中处理ResultSet时遇到的一个常见问题,即在判断结果集是否为空时误用`if(rs==null)`导致实际结果为空时未被正确识别。作者通过自己的学习和调试经验,指出应该使用`if(rs.next())`或`if(rs.first())`来正确判断结果集是否有数据。同时,还提供了在使用这些方法后恢复指针位置的方法。
摘要由CSDN通过智能技术生成

问题来自于一次事故(新手轻喷),如不想看可直接跳至方法

故事(事故)如下

刚刚接触MVC架构,视频刷的飞起,然后,(脑子:我已经会了!!!)(手:不,你不会)
Dao层与Util包都构建好后,开始写Service层,在激动的调试中(改bug中),nice,程序正常结束(插入一些数据)
结果,数据库莫得任何反应(整得我以为又是哪个精神小伙没有好好接上通道还给我偷偷关上了)然而眼球编译器不起作用后,只能好好一步步看debug

然后,重点来了!!!

运行时ResultSet(以下简写rs)不等于null,但本来应该是判断为空(后来才知道这里的问题),而且后面while(rs.next())直接跳过也证明结果集就是空的
所以相当于什么都没执行,当然直接return true了

//这里传入了一本书的信息
public boolean newBook(String isbn, String type, int price, String auth, String bName) throws Exception {

    rs = tBookDao.select("bName",bName);
    if(rs==null){ //错误的根源
        tBookDao.insert(isbn,type,price,auth,bName);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值