Mybatis单表增删改查抽取

Posted CheapThrillsia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis单表增删改查抽取相关的知识,希望对你有一定的参考价值。

在日常开发中,针对mybatis单表的增删改查我们可以提取出来或者采用mybatisplus

  1. 抽取公共Dao接口
public interface IBaseDao<T> {

    int deleteByPrimaryKey(Long id);

    int insert(T t);

    int insertSelective(T t);

    T selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(T t);

    int updateByPrimaryKey(T t);
}
  1. 抽取公共Service
public interface IBaseService<T> {
    int deleteByPrimaryKey(Long id);

    int insert(T t);

    int insertSelective(T t);

    T selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(T t);

    int updateByPrimaryKey(T t);
}
public abstract class BaseServiceImpl<T> implements IBaseService<T>{

    public abstract IBaseDao<T> getBaseDao();

    @Override
    public int deleteByPrimaryKey(Long id) {
        return getBaseDao().deleteByPrimaryKey(id);
    }

    @Override
    public int insert(T t) {
        return getBaseDao().insert(t);
    }

    @Override
    public int insertSelective(T t) {
        return getBaseDao().insertSelective(t);
    }

    @Override
    public T selectByPrimaryKey(Long id) {
        return getBaseDao().selectByPrimaryKey(id);
    }

    @Override
    public int updateByPrimaryKeySelective(T t) {
        return getBaseDao().updateByPrimaryKeySelective(t);
    }

    @Override
    public int updateByPrimaryKey(T t) {
        return getBaseDao().updateByPrimaryKey(t);
    }
}

之后我们写的Mapper接口需要继承IBaseDao<?>,
Service层接口需要继承IBaseService<?>并补上泛型,实现类除了实现接口还需要继承BaseServiceImpl,并重写getBaseDao()方法返回对应的mapper接口,这样基本的增删改查我们就不用写了。

以上是关于Mybatis单表增删改查抽取的主要内容,如果未能解决你的问题,请参考以下文章

mybatis---demo1--(单表增删改查)----bai

sqlalchemy 单表增删改查

django orm 单表增删改查

ORM的单表增删改查

Django项目7 单表增删改查

Django 第五篇ORM单表增删改查