All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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