mybatis设置字段默认值,mybatis 默认值

  mybatis设置字段默认值,mybatis 默认值

  

目录

米巴提斯插入语句默认值不生效问题原因解决Mybatis-plus插入修改配置默认值创建插入修改默认值设置方法指定字段

 

  

Mybatis插入语句默认值不生效

 

  

问题

Mybatis插入语句默认值不生效,但直接在mysql命令行是生效的

 

  框架语句:插入用户信息(用户名、年龄、性别)值(# {用户名}、# {年龄}、# {性别})

  其中只给用户名和年龄传入值,性没有传入值,期望用默认值(建数据表时规定默认)填入

  关系型数据库命令行语句:插入到用户信息(用户名,年龄)值(阿三,18)

  

原因

对比米巴蒂斯和关系型数据库两条结构化查询语言语句,mysql没有写性,而米巴蒂斯写了性,但又没有给性复制因为框架中的结构化查询语言语句是这样的,如果性在关系型数据库有默认值,这里使用这么一个通用的语句,如果此时不给性传入值最后导致性为空,也就是默认值不生效,mybatis xml代码如下:

 

  

解决

用动态结构化查询语言插入语句解决。

 

  代码判断有某个字段的值时结构化查询语言语句才包含这个字段,例如:如果有性值传入时插入语句里才有性字段否者没有性字段,具体代码如下:

  !- 一种动态的插入语句-SQL id= userInfoColumns trim后缀overrides=, if test=userName!=nulluserName,/if if test=age!=null 年龄,/如果如果测试=性别!=null sex/if/trim/SQL SQL id= userInfoValues trim后缀overrides=, if test=userName!=null#{userName},/if if test=age!=null#{age},/if if test=sex!=null # { sex }/if/trim/SQL insert id= insert 参数type= com。举例。mybatisdemo 1。主人。 UserInfo key column= userInfoId key property= userInfoId useGeneratedKeys= true insert into UserInfo(include refid= UserInfo columns /)值(包含refid= UserInfo values /)/insert说明:修剪标签去除片段首尾可能出现的多余的","字符

  

Mybatis-plus插入修改配置默认值

 

  

创建 插入修改默认值设置方法

@组件公共类MetaObjectHandlerConfig实现meta object handler { @ Override public void insert fill(meta object元对象){ Date当前日期=新日期();//默认未删除setFieldValByName(isDeleted ,常量数据_未_删除,元对象);//创建时间默认当前时间setFieldValByName(createTime ,currentDate,元对象);} @覆盖公共void updateFill(元对象元对象){ Date当前日期=新日期();//修改时间setFieldValByName(modifyTime ,currentDate,meta object);}}

 

  

指定字段

 

  以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行它.

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: