建议JFinal增加类似于SQL拦截功能的支持,方便获取到执行的SQL

@JFinal 波总,之前在群里提过,有些场景,需要获取当前执行的sql,做一些额外的处理,举例说明: 

1.项目中禁止使用物理删除操作,可以通过全局的SQL拦截处理; 

2.项目中需要做一些统一的操作,比如所有的新增和修改操作,统一拦截sql,追加操作人,操作时间等; 

3.数据权限统一处理,可以通过SQL拦截,动态为sql追加数据范围限定条件;

有类似需求的小伙伴们也可以附加说明一下这个功能支持的必要性。

码云已提issue,希望波总采纳,在后续版本中添加支持。

评论区

HingLo

2018-10-26 14:46

在Model 中 有个filter方法 在执行保存于更新的前会调用,看看能不能在这个里面进行你需要的处理

冰雨

2018-10-26 18:38

@HingLo Model不行的,假如用dB + Record还是会有遗漏,最好还是在框架内部提供扩展支持。

马小酱

2018-11-01 09:46

弄一个baseModel,重写save和update,然后弄一个工具,把Db类的数据库查询方法重写,然后都用这个新的Kit,全局搜索项目的Db都替换成自己的类,楼主的想法我也思考过,我也想全局处理,但是没有什么好的想法

冰雨

2018-11-01 10:12

@马小酱 其实源码中SqlReporter就类似一个SQL拦截了,只不过只有打印SQL,未添加预留扩展,另外,想继承该类,但其构造方法会导致该类不能继承。