潘志宝
5 天以前 bab43330bf6f48bdb7bfb258611f51bb05ef56fe
提交 | 用户 | 时间
a6de49 1 /**
H 2  * Copyright (c) 2018 人人开源 All rights reserved.
3  *
4  * https://www.renren.io
5  *
6  * 版权所有,侵权必究!
7  */
8
9 package com.iailab.framework.common.service;
10
11 import com.baomidou.mybatisplus.core.conditions.Wrapper;
12
13 import java.io.Serializable;
14 import java.util.Collection;
15
16 /**
17  * 基础服务接口,所有Service接口都要继承
18  *
19  * @author Mark sunlightcs@gmail.com
20  */
21 public interface BaseService<T> {
22     Class<T> currentModelClass();
23
24     /**
25      * <p>
26      * 插入一条记录(选择字段,策略插入)
27      * </p>
28      *
29      * @param entity 实体对象
30      */
31     boolean insert(T entity);
32
33     /**
34      * <p>
35      * 插入(批量),该方法不支持 Oracle、SQL Server
36      * </p>
37      *
38      * @param entityList 实体对象集合
39      */
40     boolean insertBatch(Collection<T> entityList);
41
42     /**
43      * <p>
44      * 插入(批量),该方法不支持 Oracle、SQL Server
45      * </p>
46      *
47      * @param entityList 实体对象集合
48      * @param batchSize  插入批次数量
49      */
50     boolean insertBatch(Collection<T> entityList, int batchSize);
51
52     /**
53      * <p>
54      * 根据 ID 选择修改
55      * </p>
56      *
57      * @param entity 实体对象
58      */
59     boolean updateById(T entity);
60
61     /**
62      * <p>
63      * 根据 whereEntity 条件,更新记录
64      * </p>
65      *
66      * @param entity        实体对象
67      * @param updateWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper}
68      */
69     boolean update(T entity, Wrapper<T> updateWrapper);
70
71     /**
72      * <p>
73      * 根据ID 批量更新
74      * </p>
75      *
76      * @param entityList 实体对象集合
77      */
78     boolean updateBatchById(Collection<T> entityList);
79
80     /**
81      * <p>
82      * 根据ID 批量更新
83      * </p>
84      *
85      * @param entityList 实体对象集合
86      * @param batchSize  更新批次数量
87      */
88     boolean updateBatchById(Collection<T> entityList, int batchSize);
89
90     /**
91      * <p>
92      * 根据 ID 查询
93      * </p>
94      *
95      * @param id 主键ID
96      */
97     T selectById(Serializable id);
98
99     /**
100      * <p>
101      * 根据 ID 删除
102      * </p>
103      *
104      * @param id 主键ID
105      */
106     boolean deleteById(Serializable id);
107
108     /**
109      * <p>
110      * 删除(根据ID 批量删除)
111      * </p>
112      *
113      * @param idList 主键ID列表
114      */
115     boolean deleteBatchIds(Collection<? extends Serializable> idList);
116 }