InnerInterceptor
接口是 MyBatis-Plus 提供的一个拦截器接口,用于实现一些常用的 SQL 处理逻辑。让我详细解释一下这些方法的作用:
willDoQuery
:- 当执行查询操作时,MyBatis 会调用该方法,判断是否需要执行查询操作。
- 默认返回
true
,表示继续执行查询操作。如果需要阻止查询操作,可以在实现该方法时返回false
。 - 这个方法允许你在查询之前进行一些判断,例如是否需要执行查询、是否需要修改查询参数等。
beforeQuery
:- 在执行查询操作之前,MyBatis 会调用该方法。
- 通过实现该方法,可以在查询之前进行一些必要的操作,例如设置数据范围、修改 SQL 等。
willDoUpdate
:- 当执行更新操作时,MyBatis 会调用该方法,判断是否需要执行更新操作。
- 默认返回
true
,表示继续执行更新操作。如果需要阻止更新操作,可以在实现该方法时返回false
。
beforeUpdate
:- 在执行更新操作之前,MyBatis 会调用该方法。
- 通过实现该方法,可以在更新之前进行一些必要的操作,例如设置更新时间、加密数据等。
beforePrepare
:- 在执行 SQL 之前,MyBatis 会调用该方法。
- 通过实现该方法,可以在 SQL 执行之前进行一些必要的操作,例如设置事务隔离级别、设置查询超时时间等。
beforeGetBoundSql
:- 在获取
BoundSql
对象之前,MyBatis 会调用该方法。 - 通过实现该方法,可以在获取
BoundSql
对象之前进行一些必要的操作,例如设置参数、修改 SQL 等。
- 在获取
setProperties
:- 设置拦截器属性。
- 该方法在创建拦截器实例时调用,用于设置拦截器的属性。
pluginExecutor
:- 在创建
Executor
对象时调用,可以在这里对Executor
对象进行包装或其他处理。
- 在创建
需要注意的是,这些默认方法都是可选的,可以根据具体的需求,选择性地实现其中一些方法。同时,开发者也可以根据自己的需求,定义自己的拦截器接口,并实现相应的拦截器逻辑。