public class MultiTenantLineInnerInterceptor
extends com.baomidou.mybatisplus.extension.parser.JsqlParserSupport
implements com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor
TenantLineInnerInterceptor| 构造器和说明 |
|---|
MultiTenantLineInnerInterceptor() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected net.sf.jsqlparser.expression.Expression |
andExpression(net.sf.jsqlparser.schema.Table table,
net.sf.jsqlparser.expression.Expression where)
delete update 语句 where 处理
|
protected void |
appendSelectItem(List<net.sf.jsqlparser.statement.select.SelectItem> selectItems)
追加 SelectItem
|
void |
beforePrepare(org.apache.ibatis.executor.statement.StatementHandler sh,
Connection connection,
Integer transactionTimeout) |
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) |
protected net.sf.jsqlparser.expression.Expression |
builderExpression(net.sf.jsqlparser.expression.Expression currentExpression,
net.sf.jsqlparser.schema.Table table)
处理条件
|
protected net.sf.jsqlparser.schema.Column |
getAliasColumn(net.sf.jsqlparser.schema.Table table)
租户字段别名设置
tenantId 或 tableAlias.tenantId
|
protected void |
processDelete(net.sf.jsqlparser.statement.delete.Delete delete,
int index,
String sql,
Object obj)
delete 语句处理
|
protected void |
processFromItem(net.sf.jsqlparser.statement.select.FromItem fromItem)
处理子查询等
|
protected void |
processFunction(net.sf.jsqlparser.expression.Function function)
处理函数
支持: 1. select fun(args..) 2. select fun1(fun2(args..)
|
protected void |
processInsert(net.sf.jsqlparser.statement.insert.Insert insert,
int index,
String sql,
Object obj) |
protected void |
processInsertSelect(net.sf.jsqlparser.statement.select.SelectBody selectBody)
处理 insert into select
进入这里表示需要 insert 的表启用了多租户,则 select 的表都启动了
|
protected void |
processJoin(net.sf.jsqlparser.statement.select.Join join)
处理联接语句
|
protected void |
processPlainSelect(net.sf.jsqlparser.statement.select.PlainSelect plainSelect)
处理 PlainSelect
|
protected void |
processSelect(net.sf.jsqlparser.statement.select.Select select,
int index,
String sql,
Object obj) |
protected void |
processSelectBody(net.sf.jsqlparser.statement.select.SelectBody selectBody) |
protected void |
processSelectItem(net.sf.jsqlparser.statement.select.SelectItem selectItem) |
protected void |
processUpdate(net.sf.jsqlparser.statement.update.Update update,
int index,
String sql,
Object obj)
update 语句处理
|
protected void |
processWhereSubSelect(net.sf.jsqlparser.expression.Expression where)
处理where条件内的子查询
支持如下:
1. in
2. =
3. >
4. <
5. >=
6. <=
7. <>
8.
|
void |
setProperties(Properties properties) |
parserMulti, parserSingle, processParserpublic 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.InnerInterceptorSQLExceptionpublic void beforePrepare(org.apache.ibatis.executor.statement.StatementHandler sh,
Connection connection,
Integer transactionTimeout)
beforePrepare 在接口中 com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptorprotected void processSelect(net.sf.jsqlparser.statement.select.Select select,
int index,
String sql,
Object obj)
processSelect 在类中 com.baomidou.mybatisplus.extension.parser.JsqlParserSupportprotected void processSelectBody(net.sf.jsqlparser.statement.select.SelectBody selectBody)
protected void processInsert(net.sf.jsqlparser.statement.insert.Insert insert,
int index,
String sql,
Object obj)
processInsert 在类中 com.baomidou.mybatisplus.extension.parser.JsqlParserSupportprotected void processUpdate(net.sf.jsqlparser.statement.update.Update update,
int index,
String sql,
Object obj)
processUpdate 在类中 com.baomidou.mybatisplus.extension.parser.JsqlParserSupportprotected void processDelete(net.sf.jsqlparser.statement.delete.Delete delete,
int index,
String sql,
Object obj)
processDelete 在类中 com.baomidou.mybatisplus.extension.parser.JsqlParserSupportprotected net.sf.jsqlparser.expression.Expression andExpression(net.sf.jsqlparser.schema.Table table,
net.sf.jsqlparser.expression.Expression where)
protected void processInsertSelect(net.sf.jsqlparser.statement.select.SelectBody selectBody)
进入这里表示需要 insert 的表启用了多租户,则 select 的表都启动了
selectBody - SelectBodyprotected void appendSelectItem(List<net.sf.jsqlparser.statement.select.SelectItem> selectItems)
selectItems - SelectItemprotected void processPlainSelect(net.sf.jsqlparser.statement.select.PlainSelect plainSelect)
protected void processWhereSubSelect(net.sf.jsqlparser.expression.Expression where)
支持如下: 1. in 2. = 3. > 4. < 5. >= 6. <= 7. <> 8. EXISTS 9. NOT EXISTS
前提条件: 1. 子查询必须放在小括号中 2. 子查询一般放在比较操作符的右边
where - where 条件protected void processSelectItem(net.sf.jsqlparser.statement.select.SelectItem selectItem)
protected void processFunction(net.sf.jsqlparser.expression.Function function)
支持: 1. select fun(args..) 2. select fun1(fun2(args..),args..)
fixed gitee pulls/141
function - protected void processFromItem(net.sf.jsqlparser.statement.select.FromItem fromItem)
protected void processJoin(net.sf.jsqlparser.statement.select.Join join)
protected net.sf.jsqlparser.expression.Expression builderExpression(net.sf.jsqlparser.expression.Expression currentExpression,
net.sf.jsqlparser.schema.Table table)
protected net.sf.jsqlparser.schema.Column getAliasColumn(net.sf.jsqlparser.schema.Table table)
tenantId 或 tableAlias.tenantId
table - 表对象public void setProperties(Properties properties)
setProperties 在接口中 com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptorCopyright © 2022. All rights reserved.