Java的crud基础业务基类

一、概述

        在日常的业务中,我们在写接口的时候难免避不开基础的基础功能,大部分情况我们会利用代码生成器去生成这部分代码,通常这些代码都是有一个统一的基类,无意间点开过一次公司项框架中的这个基类,发现还是比较有意思的。

        不同的代码都使用这些基类可以快速实现,分页,填充某些必要字段(如更新时间或者生成主键值)等。


二、代码

总体结构

实体类:mode

业务类:service和serviceImpl

Mapper类:mapper.java接口

基础类

实体基类:BaseModel

public abstract class BaseModel<T extends BaseModel> implements Serializable {

    /**
     * id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /**
     * 创建人
     */
    @JSONField(serialize = true)
    private String createBy;

    /**
     * 创建时间
     */
    @JSONField(serialize = true)
    private Date createTime;
    /**
     * 更新时间
     */
    @JSONField(serialize = true)
    private String updateBy;

    /**
     * 更新人
     */
    @JSONField(serialize = true)
    private Date updateTime;

    /**
     * 删除标记
     */
    @JSONField(serialize = false)
    private String delFlag;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 分页(当前页)
     */
    @JSONField(serialize = false)
    private Integer pageNum;

    /**
     * 分页(页面大小)
     */
    @JSONField(serialize = false)
    private Integer pageSize;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public BaseModel() {
        pageNum = 1;
        pageSize = SysConfig.getPageSize();
    }


    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }


    public String getRemarks() {
        return remarks;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    /**
     * 请求参数
     */
    @JSONField(serialize = false)
    private Map<String, Object> params;


    public Map<String, Object> getParams() {
        return params;
    }

    public void setParams(Map<String, Object> params) {
        this.params = params;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    /**
     * 初始化默认字段
     */
    public void preInit() {
        SysUser sysUser = ShiroUtils.getUser();
        if (null==this.id) {
            if (sysUser != null) {
                this.createBy = sysUser.getId() + "";
                this.updateBy = sysUser.getId() + "";
            }
            if (null==this.id) {
                SnowflakeIdWorker idWorker = new SnowflakeIdWorker();
                this.id = idWorker.nextId();
            }
            this.createTime = new Date();
            this.updateTime = new Date();
            this.setDelFlag(AppConstants.TABLE_DELFLAG_VALID);
        } else {//更新
            if (sysUser != null) {
                this.updateBy = sysUser.getId() + "";
            }
            this.updateTime = new Date();
        }
    }


}

业务基类BaseService

public interface BaseService<T extends BaseModel> {

    Integer add(T var1);

    /**
     * 新增或者更新记录(通过model,非空列)
     *
     * @param var1
     * @return
     */
    Integer insertOrUpdate(T var1);

    /**
     * 删除记录(通过id)
     *
     * @param id
     * @return
     */
    Integer delete(Long id);

    /**
     * 批量删除(根据ids,例如 :abc,def,efg,sdfw)
     *
     * @param ids
     * @return
     */
    Integer deleteBatchIds(String ids);

    /**
     * 更新(根据id)
     *
     * @param var1
     * @return
     */
    Integer update(T var1);

    /**
     * 查询单条model(通过id)
     *
     * @param id 数据id
     * @return
     */
    T getOne(Long id);



    /**
     * 查询单条model(对象)
     *
     * @param var1 数据id
     * @return
     */
    T get(T var1);

    /**
     * 分页查询
     *
     * @param var1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值