nossaj.圳深
我?下MySQL数据库的问题:
字段 sort_num INT(11) DEFAULT 0,当INSERT时,sort_num值为NULL,插入后SELECT发现为NULL,而不是默认值0,这是为什么?
而字段设置为主键就不存在这样的问题
武小
设置NOT NULL试试
不允许为空
允许为空的不会自动设置默认值,还是NULL
nossaj.圳深
NOT NULL,插入值为NULL就会报错
nossaj.圳深
插入值为空的错误,因为已经约束NOT NULL
而我传入的值为NULL
nossaj.圳深
嗯 我试试确实可行不过还是会有其它的问题产生,因为这个sort_num有时候还是有值的我再想想其它折中的方法 城空灬舞灵丿.圳深
插入时把他值设为空字符串不就行了 nossaj.圳深
类型是INT类型啊,哪来的空字符串?MySQL 字段类型是INT类型,对应的Java属性我用的是Integer nossaj.圳深
嗯 那就只能判断为null的时候替换值了当初以为会和设置成主键一样的效果的 城空灬舞灵丿.圳深
带的时候给了什么给它
给了值还是什么都没给?
nossaj.圳深
看前台传的值了,如果没传就为NULL
为NULL或有值
城空灬舞灵丿.圳深
对呀!前台没传,那你又插入,查出的肯定为null了
你sql可以做个判断
nossaj.圳深
sql咋判断?
用的mybatis
城空灬舞灵丿.圳深
没传就设为null插进去,传了就插传的值
州广.圳深
你直接把这一列设置默认值为0 插入的时候如果没给这个字段赋值,就会采用默认值
nossaj.圳深
?深圳-广州 不是这样,字段INT类型其默认值设置0,如果插入值为NULL,那么插入的值就为NULL,而不是0
哥辉.圳深
问下大家 switch case中return true有什么用呢? 州广.圳深
那你得判断 sort_num这列有没有值,没有值 就insert的时候 不加sort_num这列
这样就会使用默认值了
nossaj.圳深
那就多了很多步骤了,我用的mybatis
nossaj.圳深
这样呀,我百度下 nossaj.圳深
我不知道mybatis可以写if语句 城空灬舞灵丿.圳深
判断那个传入的字段就可以 武小
尽量不要用mysql的默认值,在java里面处理好再insert
哥辉.圳深
我来解释我上面那个问题,就是结束方法的意思
nossaj.圳深
https://zhidao.baidu.com/question/489402586814717972.html那mybatis的if else判断,最后它底层使用的sql,还是java代码? 武小
。。java里面用NumberUtils.toInt转一下就搞定了,哪用这么复杂
nossaj.圳深
那我直接一开始用int不更好?int 默认值为0java中那么问题来了,ALL.整数对应的java类型一般用int,还是Integer?