mysql 数据库时间设置默认值后,传空值仍然报错

 @Insert("insert into t_product_edition (user_id,product_id,edition,description,create_time) values(#{userId},#{productId},#{productEdition},#{description},#{createTime})")
    void confirmEditionMapper(@Param("userId")int userId,@Param("productId") int productId, @Param("productEdition") String productEdition,@Param("description") String description, @Param("createTime") Timestamp createTime);
```sql  语句如上:  传入参数createTime 未赋值   
查阅得知:mysql 的默认值是指当你不指定字段时 会出现默认值,但指定默认值为空,即传了参却未赋值   就会报这个错。
处理方法让那个时间参数未必填项,业务层用做校验 ,若前端传空值 则返回错误提醒


或者可以酱紫处理  目前没有找到@requestparam注解如何设置时间默认值(这种情况适合传的参数不是时间类型)
public TmyResult confirmProductEdition(int productId, String chargeman, String productEdition, String description, @RequestParam(required = false, value="createTime",defaultValue="2021-01-19 21:30:42" ) Timestamp createTime)

***后续想到可以这样处理,加一个逻辑判断***
    if(createTime==null){
            return TmyResult.wrong("时间不能为空");
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值