BudWk V7 从零开始搭建微服务开发框架 - 05 数据库组件

原创
2021/05/28 17:38
阅读数 263

wk-starter-database

组件功能

  • 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));
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部