泛型类的应用

此DEMO实现了, 通用增删改查.  咱们只要创建了实体,那么对于该实体的增删改查方法都存在.不需要再去手动编写.

项目结构如下:

泛型类的应用<T><D><K>

这里重点关注圈粉的地方.BaseModel,BaseRepository,BaseService.

BaseRepository可能有些人看起来会有些陌生, 这里我用的是spring jpa 实现的域数据库的映射,其实和mybatis的mapper类似.其他不多解释.咱们学java的,一眼就能看明白.为什么会有这三个父类的存在. 

OK,看代码.

泛型类的应用<T><D><K>

泛型类的应用<T><D><K>

BaseModel ,里边的属性都是咱们实体类的公共属性. 比如:id,创建人, 创建时间, 修改人,修改时间等. 就是所有的表都需要的字段.注意我的项目里边所有ID都是Long类型.

泛型类的应用<T><D><K>

泛型类的应用<T><D><K>

咱们自己的Repository继承BaseRepository,泛型里边加上咱们自己的model类User,以及ID的类型. 这样UserRepository里就存在所有的增删改查方法. 如果有自身的方法.就可以写.比如截图的findListByName等等.这些是自身方法, 增删改查就是父类的.

泛型类的应用<T><D><K>

泛型类的应用<T><D><K>

咱们的BaseService,注意看泛型D extends BaseRepository. 这样咱们的service就能调用到repository的增删改查方法.

以后还有其他service都可以向UserService这样继承一下.  不需要写其他任何东西. 就已经存在增删改查方法.或者其他通用方法.