增删查改接口
接口定义
DataAccess接口提供访问数据库的增删查改方法。
public interface DataAccess<E extends Persistable<I>, I extends Serializable, Q extends DoytoQuery> {
List<E> query(Q query);
long count(Q query);
PageList<E> page(Q query);
<V> List<V> queryColumns(Q q, Class<V> clazz, String... columns);
List<I> queryIds(Q query);
default E get(I id) {
return get(IdWrapper.build(id));
}
E get(IdWrapper<I> w);
default int delete(I id) {
return delete(IdWrapper.build(id));
}
int delete(IdWrapper<I> w);
int delete(Q query);
void create(E e);
default int batchInsert(Iterable<E> entities, String... columns) {
int count = 0;
for (E entity : entities) {
create(entity);
count++;
}
return count;
}
int update(E e);
int patch(E e);
int patch(E e, Q q);
}DataAccess接口中的所有方法一共只接收4类参数:
id实体的主键;IdWrapper分表主键对象,用于分表查询;Entity实体对象,用于映射表名和列名;Query查询对象,用于动态构造查询条件和分页语句,需要继承PageQuery
对于Entity的定义,请参考:
对于Query的定义,请参考:
示例
以下接口调用基于实体对象UserEntity和查询对象UserQuery进行演示:
Get
根据id查询数据:
Query
根据查询条件查询数据:
Count
根据查询条件查询数据的总数:
Page
根据查询条件查询数据和总数:
Delete
根据id删除数据:
DeleteByQuery
根据查询条件删除数据:
Create
创建单条数据:
CreateMulti
创建多条数据:
Update
根据id更新所有字段:
Patch
根据id更新所有非空字段:
PatchByQuery
根据查询条件更新所有非空字段:
最后更新于
这有帮助吗?