SQL监听器
huiche提供了org.huiche.core.listener.Listener接口,可以对huiche-jdbc的JdbcExecutor执行sql时的情况进行监听,内置事件,按触发先后顺序如下
onTranslate转译SQL前,仅使用了ast和dialect转译的才会触发该事件,使用dao的方法会触发的, 如果直接使用JdbcExecutor.sql(String sql...)直接执行原生sql,不会触发该事件onTranslated转译SQL后, 触发条件同上,如果转译出错,不会触发此事件及后续事件onConnectionAcquired连接已获取,此时sql,params,connection已经固定,后续出错不会继续触发除onCompleted外的事件onStatementPrepared语句就绪(未进行参数绑定),后续出错不会继续触发除onCompleted外的事件onSqlExecutingsql执行之前(已完成参数绑定),后续出错不会继续触发除onCompleted外的事件onSqlExecutedsql执行结束(未处理结果集)onCompleted整体流程结束,成功(已处理结果集)或异常(可能是任意阶段异常)
可根据自己需要 重写实现其中部分方法
huiche还提供了两个内置监听器
SlowSQLListener慢SQL监听器,默认记录onSqlExecuting到onSqlExecuted之间的耗时,通过阈值,判断是否要输出慢SQL日志,如果使用huiche-spring-boot-starter,可直接配置huiche.slow-sql-threshold来启用该监听器SQLLogListener日志监听器,默认在onConnectionAcquired时,打印要执行的sql语句,如果使用huiche-spring-boot-starter,可直接配置huiche.enable-sql-log来启用该监听器
可以自行配置使用以上两个内置监听器,也可以自行编写自己的监听器,需要注册在配置中生效
了解添加监听器