统一添加查询条件

最后更新:2024-05-23 14:51:32 | 状态:未完成

可以实现QueryInterceptor,

prepare:表示在准备创建SQL之前触发,如果需要修改查询条件可以在这一步执行。

before:是在SQL执行之前触发,到这一步时最终SQL已经生成,可以用来保存查询日志

after:在before基础之上,多了SQL执行状态、查询结构及查询耗时

注意当前拦截器有2个prepare方法可以实现,其中有一个是通过存储过程查询

参考示例
多个拦截器与监听器执行顺序参考【执行顺序

    /**
     * 创建查询SQL之前,可以在这一步修改查询条件
     * @param runtime datasource/adapter/jdbctemplate
     * @param prepare 有或SQL或SQL.id
     * @param configs 查询条件
     * @param conditions  查询条件
     * @return RESULT
     */
    default SWITCH prepare(JDBCRuntime runtime, RunPrepare prepare, ConfigStore configs, String ... conditions){ return SWITCH.CONTINUE;}

    default SWITCH prepare(JDBCRuntime runtime, Procedure procedure, PageNavi navi){ return SWITCH.CONTINUE;}
    /**
     * 合计总数之前调用,到这一步SQL已创建完成
     * @param runtime datasource/adapter/jdbctemplate
     * @param run 查询SQL(包含SQL体,查询条件,查询参数值)
     * @param navi 分页
     * @return RESULT
     */
    default SWITCH before(JDBCRuntime runtime, Run run, PageNavi navi){ return SWITCH.CONTINUE;}
    default SWITCH before(JDBCRuntime runtime, Procedure procedure, List<Parameter> inputs, List<Parameter> outputs, PageNavi navi){ return SWITCH.CONTINUE;}
    /**
     * 合计总数之前调用,到这一步SQL已创建完成
     * @param runtime datasource/adapter/jdbctemplate
     * @param success 查询SQL是否执行成功
     * @param run 查询SQL(包含SQL体,查询条件,查询参数值)
     * @param navi 分页
     * @param millis 耗时
     * @return RESULT
     */
    default SWITCH after(JDBCRuntime runtime, Run run, boolean success, Object result, PageNavi navi, long millis){ return SWITCH.CONTINUE;}
    default SWITCH after(JDBCRuntime runtime, Procedure procedure, List<Parameter> inputs, List<Parameter> outputs, PageNavi navi, boolean success, Object result, long millis){ return SWITCH.CONTINUE;}



首页 最近更新 搜索 提交 回复