
com.gitee.qdbp.jdbc.api.QdbcBase Maven / Gradle / Ivy
package com.gitee.qdbp.jdbc.api;
import com.gitee.qdbp.able.jdbc.condition.TableJoin;
import com.gitee.qdbp.jdbc.stream.CrudStream;
import com.gitee.qdbp.jdbc.stream.SqlStream;
/**
* 数据库操作对象的构造器
* qdbp-jdbc简称为qdbc
* 使用方法示例:
*
@Autowired
private QdbcBoot qdbcBoot;
private void xxMethod() {
// 单表增删改查
Date today = DateTools.toStartTime(new Date());
Date yesterday = DateTools.addDay(today, -1);
{ // 查询单个对象
XxxBean xxxBean = qdbcBoot.crudStream(XxxBean.class)
.whereById(id)
.find();
}
{ // 查询列表(创建时间为今天的)
List<YyyBean> yyyBeans = qdbcBoot.crudStream(YyyBean.class)
.where("createTime").greaterEqualsThen(today).end()
.orderBy("createTime DESC")
.list();
}
{ // 分页查询(创建时间为昨天的第1页的10条记录)
PartList<YyyBean> yyyBeans = qdbcBoot.crudStream(YyyBean.class)
.where("createTime").greaterEqualsThen(yesterday)
.and("createTime").lessThen(today)
.end()
.orderBy("createTime ASC")
.pageBy(1, 10)
.list();
}
{ // 删除昨天待处理和失败的记录
int rows = qdbcBoot.crudStream(ZzzBean.class)
.where("state").in(ZzzState.PENDING, ZzzState.ERROR)
.and("createTime").greaterEqualsThen(yesterday)
.and("createTime").lessThen(today)
.end()
.physicalDelete(); // 物理删除
}
{ // SQL模板查询
Map<String, Object> params = ...;
String sqlId = "SysUserMapper:queryUserRoles";
List<SysRoleEntity> list = qdbcBoot.sqlStream()
.sqlId(sqlId).params(params)
.pageBy(1,10)
.resultAs(SysRoleEntity.class)
.list().asPartList(); // 分页后返回的是PageList, 需要转换为普通List
}
}
*
*
* @author 赵卉华
* @version 190601
* @see TableJoin
*/
public interface QdbcBase extends SqlBoot {
/**
* 单表增删改查流式操作
* 查询条件
* qdbcBoot.crudStream(XxxEntity.class)
* .whereBy(entity) | whereBy(map) // 实体条件
* .where(fieldName) // 字段条件
* -- equals | lessThen | greaterThen | like | startsWith | endsWith | in | between | notEquals | ...
* -- and(fieldName)
* ---- equals | lessThen | greaterThen | like | startsWith | endsWith | in | between | notEquals | ...
* -- and()
* ---- subCondition // 子查询条件
* ------ and(fieldName) | or(fieldName)
* -- ifTrue(test) | ifHasValue(value) | ifHasValue() // 选择性添加条件
* ---- and(fieldName)
* ------ equals | lessThen | greaterThen | like | startsWith | endsWith | in | between | notEquals | ...
* -- end()
* -- logicalDelete|physicalDelete / find|findFieldValue / count|groupCount / list|listFieldValues
* -- orderBy
* ---- list | listFieldValues
* -- pageBy
* ---- list | listFieldValues
* 查询指定字段 (后续操作只能是查询,不能是删除和统计)
* qdbcBoot.crudStream(XxxEntity.class)
* .select(fieldNames) | selectExclude(fieldNames) // 查询指定字段或排除字段
* -- list | listFieldValues
* -- whereBy(entity) | whereBy(map) // 实体条件
* -- where(fieldName) // 字段条件
* ---- equals | lessThen | greaterThen | like | startsWith | endsWith | in | between | notEquals | ...
* ---- end()
* ---- find | findFieldValue / list | listFieldValues
* ---- orderBy
* ------ list | listFieldValues
* ---- pageBy
* ------ list | listFieldValues
* 新增修改
* qdbcBoot.crudStream(XxxEntity.class)
* .entity(xxxEntity) | entity(map) // 指定实体类
* -- insert / update
* -- whereBy(entity) | whereBy(map) // 实体条件
* -- where(fieldName) // 字段条件
* ---- equals | lessThen | greaterThen | like | startsWith | endsWith | in | between | notEquals | ...
* ---- end()
* ---- update
* 修改
* qdbcBoot.crudStream(XxxEntity.class)
* .updateSet(fieldName)
* -- to(fieldValue) | toNull() | add(number)
* ---- set(fieldName)
* ------ to(fieldValue) | toNull() | add(number)
* ---- end()
* -- update
* 批量操作
* qdbcBoot.crudStream(XxxEntity.class)
* .entities(list) // 指定实体列表
* -- insert / update
* 递归查询
* qdbcBoot.crudStream(XxxEntity.class)
* .recursiveBy(codeField, parentField) // 递归查询
* -- startByCodes 指定开始节点编号
* ---- listChildren | listParents | listChildrenCodes | listParentCodes
* ---- filterBy(entity) | filterBy(map) // 数据过滤实体条件
* ---- filterBy(fieldName) // 数据过滤字段条件
* ------ equals | lessThen | greaterThen | like | startsWith | endsWith | in | between | notEquals | ...
* ------ end()
* ---- searchBy(entity) | searchBy(map) // 结果搜索实体条件
* ---- searchBy(fieldName) // 结果搜索字段条件
* ------ equals | lessThen | greaterThen | like | startsWith | endsWith | in | between | notEquals | ...
* ------ end()
* ------ listChildren | listParents | listChildrenCodes | listParentCodes
* ---- orderBy // 排序条件
* ------ listChildren | listParents | listChildrenCodes | listParentCodes
*
* @param 单表对应的具体类型
* @param clazz 单表对应的对象类型
* @return 流式操作对象
* @since 4.0.0
*/
CrudStream crudStream(Class clazz);
/**
* Sql模板的流式操作
* qdbcBoot.sqlStream()
* .sqlId(queryId) // 设置SqlId
* -- find | list | insert | update | delete
* -- params // 设置参数
* ---- find | list | insert | update | delete
* ---- pageBy // 设置分页参数
* ------ find | list
* ------ resultAs // 结果转换
* -------- find | list // 查找数据/查找列表
* .sqlId(queryId, countId) // 同时设置查询和统计SqlId (后续操作只能是分页查询)
* -- params // 设置参数
* ---- pageBy // 设置分页参数
* ------ list
* ------ resultAs // 结果转换
* -------- list // 查找数据/查找列表
*
* @return 流式操作对象
* @since 4.0.0
*/
SqlStream sqlStream();
/**
* 构造单表增删改查对象
*
* @param 单表对应的具体类型
* @param clazz 单表对应的对象类型
* @return 单表增删改查对象
*/
CrudDao crudDao(Class clazz);
/**
* 构造表关联查询对象
*
* @param 查询结果的具体类型
* @param tables 表关联对象
* @param resultType 查询结果的对象类型
* @return 表关联查询对象
*/
JoinQueryer joinQueryer(TableJoin tables, Class resultType);
/**
* 获取SQL执行接口
*
* @return SqlDao
* @since 3.2.0
*/
SqlDao sqlDao();
/**
* 获取SqlBuffer数据库操作类
*
* @return SqlBufferJdbcOperations
*/
SqlBufferJdbcOperations sqlJdbc();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy