类 MultiTenantLineInnerInterceptor
java.lang.Object
com.baomidou.mybatisplus.extension.parser.JsqlParserSupport
top.tangyh.basic.database.plugins.MultiTenantLineInnerInterceptor
- 所有已实现的接口:
com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor
public class MultiTenantLineInnerInterceptor
extends com.baomidou.mybatisplus.extension.parser.JsqlParserSupport
implements com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor
COLUMN 级别多租户拦截器
相对于mybatis-plus 的 TenantLineInnerInterceptor,本插件支持:
1. select 语句 where条件拼接多个租户id (tenant_id in (1,2,3,4))
2. insert、update、 delete 时,不传递租户id,则不拼接
- 版本:
- v1.0
- 作者:
- zuihou, hubin
- 另请参阅:
-
TenantLineInnerInterceptor
-
字段概要
从类继承的字段 com.baomidou.mybatisplus.extension.parser.JsqlParserSupport
logger -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明protected net.sf.jsqlparser.expression.ExpressionandExpression(net.sf.jsqlparser.schema.Table table, net.sf.jsqlparser.expression.Expression where) delete update 语句 where 处理protected voidappendSelectItem(List<net.sf.jsqlparser.statement.select.SelectItem> selectItems) 追加 SelectItemvoidbeforePrepare(org.apache.ibatis.executor.statement.StatementHandler sh, Connection connection, Integer transactionTimeout) voidbeforeQuery(org.apache.ibatis.executor.Executor executor, org.apache.ibatis.mapping.MappedStatement ms, Object parameter, org.apache.ibatis.session.RowBounds rowBounds, org.apache.ibatis.session.ResultHandler resultHandler, org.apache.ibatis.mapping.BoundSql boundSql) protected net.sf.jsqlparser.expression.ExpressionbuilderExpression(net.sf.jsqlparser.expression.Expression currentExpression, net.sf.jsqlparser.schema.Table table) 处理条件protected net.sf.jsqlparser.schema.ColumngetAliasColumn(net.sf.jsqlparser.schema.Table table) 租户字段别名设置protected voidprocessDelete(net.sf.jsqlparser.statement.delete.Delete delete, int index, String sql, Object obj) delete 语句处理protected voidprocessFromItem(net.sf.jsqlparser.statement.select.FromItem fromItem) 处理子查询等protected voidprocessFunction(net.sf.jsqlparser.expression.Function function) 处理函数protected voidprocessInsert(net.sf.jsqlparser.statement.insert.Insert insert, int index, String sql, Object obj) protected voidprocessInsertSelect(net.sf.jsqlparser.statement.select.SelectBody selectBody) 处理 insert into selectprotected voidprocessJoin(net.sf.jsqlparser.statement.select.Join join) 处理联接语句protected voidprocessPlainSelect(net.sf.jsqlparser.statement.select.PlainSelect plainSelect) 处理 PlainSelectprotected voidprocessSelect(net.sf.jsqlparser.statement.select.Select select, int index, String sql, Object obj) protected voidprocessSelectBody(net.sf.jsqlparser.statement.select.SelectBody selectBody) protected voidprocessSelectItem(net.sf.jsqlparser.statement.select.SelectItem selectItem) protected voidprocessUpdate(net.sf.jsqlparser.statement.update.Update update, int index, String sql, Object obj) update 语句处理protected voidprocessWhereSubSelect(net.sf.jsqlparser.expression.Expression where) 处理where条件内的子查询voidsetProperties(Properties properties) 从类继承的方法 com.baomidou.mybatisplus.extension.parser.JsqlParserSupport
parserMulti, parserSingle, processParser从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait从接口继承的方法 com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor
beforeGetBoundSql, beforeUpdate, willDoQuery, willDoUpdate
-
构造器详细资料
-
MultiTenantLineInnerInterceptor
public MultiTenantLineInnerInterceptor()
-
-
方法详细资料
-
beforeQuery
public void beforeQuery(org.apache.ibatis.executor.Executor executor, org.apache.ibatis.mapping.MappedStatement ms, Object parameter, org.apache.ibatis.session.RowBounds rowBounds, org.apache.ibatis.session.ResultHandler resultHandler, org.apache.ibatis.mapping.BoundSql boundSql) throws SQLException - 指定者:
beforeQuery在接口中com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor- 抛出:
SQLException
-
beforePrepare
public void beforePrepare(org.apache.ibatis.executor.statement.StatementHandler sh, Connection connection, Integer transactionTimeout) - 指定者:
beforePrepare在接口中com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor
-
processSelect
protected void processSelect(net.sf.jsqlparser.statement.select.Select select, int index, String sql, Object obj) - 覆盖:
processSelect在类中com.baomidou.mybatisplus.extension.parser.JsqlParserSupport
-
processSelectBody
protected void processSelectBody(net.sf.jsqlparser.statement.select.SelectBody selectBody) -
processInsert
protected void processInsert(net.sf.jsqlparser.statement.insert.Insert insert, int index, String sql, Object obj) - 覆盖:
processInsert在类中com.baomidou.mybatisplus.extension.parser.JsqlParserSupport
-
processUpdate
protected void processUpdate(net.sf.jsqlparser.statement.update.Update update, int index, String sql, Object obj) update 语句处理- 覆盖:
processUpdate在类中com.baomidou.mybatisplus.extension.parser.JsqlParserSupport
-
processDelete
protected void processDelete(net.sf.jsqlparser.statement.delete.Delete delete, int index, String sql, Object obj) delete 语句处理- 覆盖:
processDelete在类中com.baomidou.mybatisplus.extension.parser.JsqlParserSupport
-
andExpression
protected net.sf.jsqlparser.expression.Expression andExpression(net.sf.jsqlparser.schema.Table table, net.sf.jsqlparser.expression.Expression where) delete update 语句 where 处理 -
processInsertSelect
protected void processInsertSelect(net.sf.jsqlparser.statement.select.SelectBody selectBody) 处理 insert into select进入这里表示需要 insert 的表启用了多租户,则 select 的表都启动了
- 参数:
selectBody- SelectBody
-
appendSelectItem
追加 SelectItem- 参数:
selectItems- SelectItem
-
processPlainSelect
protected void processPlainSelect(net.sf.jsqlparser.statement.select.PlainSelect plainSelect) 处理 PlainSelect -
processWhereSubSelect
protected void processWhereSubSelect(net.sf.jsqlparser.expression.Expression where) 处理where条件内的子查询支持如下: 1. in 2. = 3. > 4. < 5. >= 6. <= 7. <> 8. EXISTS 9. NOT EXISTS
前提条件: 1. 子查询必须放在小括号中 2. 子查询一般放在比较操作符的右边
- 参数:
where- where 条件
-
processSelectItem
protected void processSelectItem(net.sf.jsqlparser.statement.select.SelectItem selectItem) -
processFunction
protected void processFunction(net.sf.jsqlparser.expression.Function function) 处理函数支持: 1. select fun(args..) 2. select fun1(fun2(args..),args..)
fixed gitee pulls/141
- 参数:
function-
-
processFromItem
protected void processFromItem(net.sf.jsqlparser.statement.select.FromItem fromItem) 处理子查询等 -
processJoin
protected void processJoin(net.sf.jsqlparser.statement.select.Join join) 处理联接语句 -
builderExpression
protected net.sf.jsqlparser.expression.Expression builderExpression(net.sf.jsqlparser.expression.Expression currentExpression, net.sf.jsqlparser.schema.Table table) 处理条件 -
getAliasColumn
protected net.sf.jsqlparser.schema.Column getAliasColumn(net.sf.jsqlparser.schema.Table table) 租户字段别名设置tenantId 或 tableAlias.tenantId
- 参数:
table- 表对象- 返回:
- 字段
-
setProperties
- 指定者:
setProperties在接口中com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor
-