怎么拦截带有特定where条件的sql?

场景、问题:

例如: update a from table_a where col_name=name1;
想实现的效果:如果 update 语句中没有出现 col_name=name1这个条件,就直接报错,不让执行。

在使用sharding-jdbc 4,mybatis 3的项目中,拦截所有不带店号的DML语句(目前包含:update,delete)。

我自己写了一个拦截器。

1 个赞

很棒的回馈! 可以向大家介绍下设计思路吗?

设计思路是:
1.利用mybatis提供的拦截器,在mybatis层拦截特定sql。
2.为了不引入更多的依赖,使用sharding-jdbc的sql解析器来解析sql,然后做出逻辑判断。

1 个赞
京ICP备2021015875号