Listener/Interceptor
示例源码参考 【anyline-simple-data-jdbc-listener 】【anyline-simple-data-jdbc-interceptor】
EntityListener
AnylineController中提供了entity()用来把request中的参考封装到Entity或DataRow,
在entity()方法最后会触发EntityListener.after();
可以在after中put创建时间、创建人、修改时间等
ControllerListener
AnylineController中提供了condition()用来根据提供配置把request中的参数值封装到ConfigStore中ConfigStore将被用来生成SQL
在condition()方法最后会调用ControllerListener.after()
public ConfigStore after(HttpServletRequest request, ConfigStore configs);
可以在这个after中修改查询条件
DML监听相关操作
DDListener
DDL监听相关操作
Interceptor:
DML方面分别提供了独立的了QueryInterceptor、InsertInterceptor、UpdateInterceptor、DeleteInterceptor、CountInterceptor、ExcuteInterceptor
DDL方面由于参数基本一致,所以只提供了一个统一的DDInterceptor,在实现DDInterceptor时需要明确哪些命令(参考文未的枚举值)会触发当前拦截器
Listener中的方法比较多,会监听SQL执行的各个阶段,一般一个项目只需要一个
Interceptor中只有prepare,before,after,只有Interceptor相关的SQL才会触发。