持久层相关
(1) dao层 → BaseDao.java
负责与数据库交互
BaseMapper
所有Mapper接口的父接口
在 BaseDao 这个接口中,理论上是可以把 CRUD 都给整合起来的,
另外,在接口中也定义了一个泛型,该泛型具体是什么,由子接口声明。
十分注意:此接口只是用来继承的,不管是什么情况下,谁去拿这个接口当做一般接口去使用,谁用谁报错
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| public interface BaseMapper<T> {
List<T> selectAll();
T selectById(T t);
int selectAllCount();
List<T> selectLimit(@Param("start") int start, @Param("pageSize") int pageSize);
int insert(T t);
int delete(T t);
int update(T oldS,T newS); }
|
普通Mapper
(2)dao层 → SchoolDao.java
BaseMapper中的 T 在此处 给他一个实际的类(实体类)
此接口如果没有特殊情况,只是声明泛型 这一个作用
1 2 3 4 5 6 7 8 9 10 11 12
|
public interface SchoolDao extends BaseDao<Student> { }
|
业务层相关
(3) service层 → BaseService.java
与上面的BaseDao接口一样,也定义了一个 泛型(由子类去声明)
只不过是此接口把 分页 相关的方法提到另一个接口中去了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public interface BaseService<T> {
List<T> findAll();
T findById(T t);
boolean add(T t);
boolean remove(T t);
boolean modify(T oldT,T newT); }
|
(4) service → root → PageService.java
只是把和分页相关的接口方法,提取出来了而已
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public interface PageService<T> {
int findAllCount();
List<T> findLimit(int start, int pageSize);
default BasePage<T> getBasePage() { return new BasePage<>(this); } }
|