MySql某字段值为空时,int 报异常

我想将一个字段作为查询的条件,但是,此字段,如果为空时,就会报错。

img

访问数据库时,这个songId对应的字段,为空时,这里会报空指针异常,我之前是用的try 捕捉异常解决的。但是有其它办法解决吗?比如用if或其它的表达方式的吗?。。

另外一个也挺奇怪的,我在加了 jsonObject.put以后,它居然不报错了,也不报异常了,就在PostMan中显示

{
    "msg": "访问成功",
    "code": 1,
    "data": []
}

img

把接受返回值的int改成integer就不会报错了,我想你应该已经知道原因了吧

加个默认值,或者判断一下是Null手动赋个值0

你现在不是加了非空判断了吗

另外为了解决NPE可以了解一下jdk8的Optional语法,非常好用

发生情况有
如果取到值为空,说明数据库没有相关记录!返回null
查询语句写错了,取到一个没有列名的值,返回为null
传参数据不对,取不到值,返回null
设置条件无法满足查询条件 返回null

你可以在catch 到异常时 response给前端啊,在catch语句中加响应,这种运行时异常有时是很难发现的,所以try catch 语句的优势就在这儿

为什么要用string类型去接受前端传过来的参数,然后再把它转成int? 而不直接用int去接收前端传来的参数。
如果前端传的参数不是数字,程序都直接拒绝了,他都调用不到你的方法。
参数传对了,才能调用你的方法。

img


你前面不是已经判断songId不为空了吗,不是你这个songId的问题吧?Integer,parseInt(songId)最多也是报转换类型错误吧

img


调用的不同方法,总感觉是你方法里面的问题...?