一款超好用的 ORM 框架 mybatis-mp 之亮点一
官网:https://mybatis-mp.cn
mybatis-mp之亮点一:可动态默认值
@Table
@Data
public class DefaultValueTest {
@TableId
@TableId(dbType = DbType.ORACLE, value = IdAutoType.SQL, sql = "select default_value_test_seq.NEXTVAL FROM dual")
@TableId(dbType = DbType.KING_BASE, value = IdAutoType.SQL, sql = "select default_value_test_seq.NEXTVAL FROM dual")
private Integer id;
@TableField(defaultValue = "{BLANK}")
private String value1;
@TableField(defaultValue = "1", updateDefaultValue = "2")
private Integer value2;
@TableField(updateDefaultValue = "4")
private Integer value4;
@TableField(defaultValue = "{NOW}")
private LocalDateTime createTime;
private TestEnum value3;
}
1:@TableField 即可设置 插入defaultValue默认值 还可以设置修改updateDefaultValue默认值
2:默认值可以是静态默认,还可以动态默认值例如上面{BLANK},{NOW};除官网设置的这2个,你可以自己定义动态默认值
如何自定义动态默认值?
MybatisMpConfig.setDefaultValue("{NOW}",type->{
if (type == String.class) {
return StringPool.EMPTY;
} else if (type.isArray()) {
return Array.newInstance(type, 0);
} else if (List.class.isAssignableFrom(type)) {
return Collections.EMPTY_LIST;
} else if (Set.class.isAssignableFrom(type)) {
return Collections.EMPTY_SET;
} else if (Map.class.isAssignableFrom(type)) {
return Collections.EMPTY_MAP;
}
throw new RuntimeException("Inconsistent types");
});
此注册代码需要放到项目启动时执行
是不是很简单,很符合开发者的直观体验,快来加入吧