CustomJdbcTemplateWrapperTenantInterface.java
5.57 KB
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
package com.taover.repository;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import com.taover.repository.exception.MultiRowException;
import com.taover.repository.exception.NoShardingKeyException;
import com.taover.repository.exception.NotFoundException;
public interface CustomJdbcTemplateWrapperTenantInterface<T, ID extends Number> {
/**
* 按主键查询
*/
public T findEntityByID(ID id, Long tenantId) throws NotFoundException;
/**
* 按主键查询
* isLock 是否锁定, 默认不锁
* fromWriteDB 是否从写库读写,默认从读库查询
*/
public T findEntityByID(ID id, Long tenantId, boolean isLock) throws NotFoundException;
/**
* 根据条件List<Object[]>查询
* Object[]数组长度是3
* Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public T findEntityByCondition(List<Object[]> condition, Long tenantId) throws NotFoundException,MultiRowException,NoShardingKeyException;
/**
* 根据条件sql查询
* sqlCondition 为where 后面的条件。
*/
public T findEntityBySql(String sqlCondition, Long tenantId) throws NotFoundException,MultiRowException,NoShardingKeyException;
/**
* 根据条件List<Object[]>查询
* Object[]数组长度是3
* Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public List<T> findListByCondition(List<Object[]> condition, Long tenantId);
/**
* 根据条件List<Object[]>查询
* Object[]数组长度是3
* Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public List<T> findListByCondition(List<Object[]> condition, String sortCondition, Long tenantId);
/**
* 根据条件sql查询
* sqlCondition 为where 后面的条件。
*/
public List<T> findListBySql(String sqlCondition, Long tenantId);
/**
* 按条件分页查询
* Object[]数组长度是3
* Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public Map<String, Object> findPageByCondition(List<Object[]> condition, int page, int pageSize, Long tenantId);
/**
* 按条件分页查询
* Object[]数组长度是3
* Object[]第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
* boolean isUseCache, 是否用缓存,默认用。
* boolean isAddCache, 是否添加缓存,默认添加。
*/
public Map<String, Object> findPageByCondition(List<Object[]> condition, String sortCondition, int page, int pageSize, Long tenantId);
/**
* 按sql分页查询, sqlCondition为where 后条件sql
*/
public Map<String, Object> findPageBySql(String sqlCondition, int page, int pageSize, Long tenantId);
/**
* 添加
*/
public Number addEntity(T entity, Long tenantId);
/**
* 批量添加
* @throws Exception
*/
public List<Number> addEntityList(List<T> entityList, Long tenantId) throws Exception;
/**
* 按ID删除
*/
public int deleteEntityByID(ID id, Long tenantId);
/**
* 删除按List<Object[]>条件
* Object[]数组长度是3
* Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public int deleteEntityByCondition(List<Object[]> condition, Long tenantId);
/**
* 删除按condition条件
* 建议使用deleteTByCondition(List<Object[]> condition), 如果removeTByCondition(List<Object[]> condition)满足不了where条件可以使用此方法。
* condition为where后面的条件,condition不能为空。
*/
public int deleteEntityBySql(String sqlCondition, Long tenantId);
/**
* 根据list对象逐个删除。
* @throws NoShardingKeyException
*/
public int deleteEntityList(List<ID> idList, Long tenantId);
/**
* 根据ID修改指定的值
*/
public int updateEntityById(List<Object[]> changeList, ID id, Long tenantId);
/**
* 根据ID列表修改指定数据
* @param changeList
* @param idList
* @param tenantId
* @return
*/
public void updateEntityByIdList(List<Object[]> changeList, Collection<ID> idList, Long tenantId);
/**
* 根据ID列表修改指定数据
* @param changeList
* @param idList
* @param batchSize
* @param tenantId
*/
public void updateEntityByIdList(List<Object[]> changeList, Collection<ID> idList, Integer batchSize, Long tenantId);
/**
* List<Object[]> updateObj 要修改成的值,数组长度为2,第一个值为列名,第二个值是要改成的值。
* List<Object[]> condition 修改的条件, 数组长度是3, 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。
*/
public int updateEntityByCondition(List<Object[]> updateObj, List<Object[]> condition, Long tenantId);
/**
* List<Object[]> updateObj 要修改成的值,数组长度为2,第一个值为列名,第二个值是要改成的值。
* String sqlCondition 修改的条件。
*/
public int updateEntityBySql(List<Object[]> updateObj, String sqlCondition, Long tenantId);
/**
* 获取分页数据
* @param coreSql
* @param orderByPartSql
* @param page
* @param pageSize
* @return
*/
public Map<String, Object> getPageData(String coreSql, String orderByPartSql, Integer page, Integer pageSize, Long tenantId);
/**
* 获取分页数据
* @param selectSql
* @param fromAndWhereSql
* @param orderByPartSql
* @param page
* @param pageSize
* @return
*/
public Map<String, Object> getPageData(String selectSql, String fromAndWhereSql, String orderByPartSql, Integer page, Integer pageSize, Long tenantId);
}