场景、问题:
例如: update a from table_a where col_name=name1;
想实现的效果:如果 update 语句中没有出现 col_name=name1这个条件,就直接报错,不让执行。
例如: update a from table_a where col_name=name1;
想实现的效果:如果 update 语句中没有出现 col_name=name1这个条件,就直接报错,不让执行。
在使用sharding-jdbc 4,mybatis 3的项目中,拦截所有不带店号的DML语句(目前包含:update,delete)。
我自己写了一个拦截器。
很棒的回馈! 可以向大家介绍下设计思路吗?
设计思路是:
1.利用mybatis提供的拦截器,在mybatis层拦截特定sql。
2.为了不引入更多的依赖,使用sharding-jdbc的sql解析器来解析sql,然后做出逻辑判断。