MyBatis插件实现数据分权

断鸿 2020年04月03日 15次浏览

实际场景中经常会有根据用户权限在页面报表上选择性展示数据的需求,本质其实是sql条件过滤数据。通常做法无非是在查询报表sql中添加权限限制条件,但这种与业务实际没多大关联的东西,如果每次操作报表的时候都要去考虑权限控制的话未免耦合度过高,且如果是在系统改造时引入该功能的话,那么去修改所有的业务报表sql工作量也会过高。很不巧最近就遇到这样一个需求,经过慎重考虑(想偷懒),最终使用了MyBaits插件来实现。经过几轮迭代,功能、性能基本上都符合了要求。

运用到的技术

  • MyBatis插件
  • jsqlparser(一款开源的Sql解析工具)
  • ThreadLocal