组件功能
- BaseModel 表公共字段的定义
通过 nutz 框架的 Dao 注解 @Column 定义表字段名、类型、长度等:
@Data
public abstract class BaseModel implements Serializable {
private static final long serialVersionUID = -762325615371339568L;
@Column
@Comment("创建人")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String createdBy;
@Column
@Comment("创建时间")
@PrevInsert(now = true)
private Long createdAt;
@Column
@Comment("修改人")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String updatedBy;
@Column
@Comment("修改时间")
@PrevInsert(now = true)
@PrevUpdate(now = true)
private Long updatedAt;
@Column
@Comment("删除标记")
@PrevInsert(els = @EL("$me.flag()"))
@ColDefine(type = ColType.BOOLEAN)
private Boolean delFlag;
public String toJsonString() {
return Json.toJson(this, JsonFormat.compact());
}
public Boolean flag() {
return false;
}
}
- BaseService 增删改查等常用功能封装
BaseServiceImpl.java 主要包括数据库的增删改查、自定义SQL查询、获取Map对象、查询部分字段、关联表查询、乐观锁的封装、伪删除的封装等,功能是基于 Nutz Dao 的二次封装,详细了解可查阅文档 http://nutzam.com/core/dao/hello.html
- 通过Pojo类初始化表结构或变更表结构
# 创建表
Daos.createTablesInPackage(dao, packageName, false);
# 修改表结构
Daos.migration(dao, packageName, conf.getBoolean(PROP_DATABASE_TABLE_ADD, false),
conf.getBoolean(PROP_DATABASE_TABLE_DELETE, false),
conf.getBoolean(PROP_DATABASE_TABLE_CHECK, false));
雪花主键
在组件启动类里,注册主键生成器,详见 http://nutzam.com/core/dao/primary_key.html#ndoc-5
CustomMake.me().register("snowflake", ioc.get(SnowFlakeIdGenerator.class));