后续文章更新请关注我的个人博客
https://www.randy0098.com
如何实现后端开发框架(三)-操作数据库
1. 问题描述
后端系统经常会把数据保存到数据库中,我们一般会使用Mybatis等持久层框架来操作数据库,但是一些简单的数据库增删改查(CURD)操作,Mybatis并没有提供简化的方法,那么我们在框架中如何简化这些操作呢?
2. 实现思路
寻找Mybatis的扩展框架来简化CURD操作,这里我选择的是MyBatis-Plus(https://baomidou.com/)(以前我还用过tk和pageHelper,现在用MyBatis-Plus就足够了)。
为了框架的扩展性,不要直接使用MyBatis-Plus,而是要通过框架的一些基类来集成,这样以后在基类中还可以增加一些额外的通用方法。
3. 实现步骤
3.1 实现Entity基类
@Data
@EqualsAndHashCode()
public class MyBaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "ID")
protected String id;
}
@Data和@EqualsAndHashCode()都是lombok注解,用于自动生成实体类的get,set等模板代码。
这里暂时只添加了一个id属性,表示每张数据库都有一个主键字段ID,后续文章中还会添加其它通用属性。
3.2 实现Controller基类
public abstract class MyBaseController<S extends MyBaseService<T>, T> {
@Autowired protected S myBaseService;
}
myBaseService的作用是自动注入Controller类对应Service类的bean,用于简化后面使用Service中的方法。
3.2 实现Service基类
import com.baomidou.mybatisplus.extension.service.IService;
public interface MyBaseService<T> extends IService<T> {
}
这里暂时只是继承了MyBatis-Plus的IService接口,后续文章中还会添加其它通用方法。IService接口类中存在大量的CURD通用方法。
3.3 实现ServiceImpl基类
import com.baomidou.mybatisplus.core.mapper.