一、引言
TenantLineInnerInterceptor是MyBatis-Plus中的一个拦截器类,位于com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor,通过MyBatis-Plus的插件机制调用,用于实现表级的多租户功能。
本文基于MyBatis-Plus的3.5.9版本的源码,并fork了代码: https://github.com/changelzj/mybatis-plus/tree/lzj-3.5.9
[code]public class TenantLineInnerInterceptor extends BaseMultiTableInnerInterceptor implements InnerInterceptor { private TenantLineHandler tenantLineHandler; @Override public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {...} @Override public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) {...} @Override protected void processSelect(Select select, int index, String sql, Object obj) {...} @Override protected void processInsert(Insert insert, int index, String sql, Object obj) {...} @Override protected void processUpdate(Update update, int index, String sql, Object obj) {...} @Override protected void processDelete(Delete delete, int index, String sql, Object obj) {...} protected void processInsertSelect(Select selectBody, final String whereSegment) {...} protected void appendSelectItem(List |