关于本节课Int不能为Null

关于本节课Int不能为Null

我想问之前实体类里面我们给的属性就已经是包装类了,为什么到了daoimpl里面还会报错呢

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好!

看到你的回复,老师又重新测试了一下,语句是这样:

pstmt.setInt(7, new Integer(product.getCategory().getCid()));

但是报错了呢


http://img1.sycdn.imooc.com//climg/5dd6616709ae6a6711830226.jpg

但是可以正常删除~,这是因为数据库的设置导致的:外键设置了修改删除时为null,这样即使你没有将product中的cid设置为null,在删除category时也是可以正常删除的。

http://img1.sycdn.imooc.com//climg/5dd66495091d140c08540575.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


好帮手慕柯南 2019-11-21 15:20:04

同学你好!

经过确认,这里的思路是这样的:

  1. pstmt.setInt()中的数据类型只能是int类型

  2. 但是我们的属性是包装类型,因此这里需要转化一下。所以老师后面将setInt改成了setObject。就可以正确的传入包装类型的属性了

  3. 老师在讲解时口误了,并且这里不能使用new Integer(product.getCategory().getCid())这种方式来处理,这样仍然是int类型接收包装类型,会报错。老师视频中的失误,我们已将向相关的工作人员反馈进行处理了。给同学带来疑惑,深感抱歉,还望同学见谅。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 那为什么老师在课上成功将cid设置为Null,而且我用错误的方法也成功的删除了category,没有受到外键约束
    2019-11-21 16:43:28
  • 是我弄错了,我修改一下
    2019-11-21 16:48:46
  • 老师,我刚刚试了一下,用错误的方法确实可以修改数据库的内容呢
    2019-11-21 17:05:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师