public class TenantLineInnerInterceptor extends JsqlParserSupport implements InnerInterceptor
logger| 构造器和说明 |
|---|
TenantLineInnerInterceptor() |
TenantLineInnerInterceptor(TenantLineHandler tenantLineHandler) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected net.sf.jsqlparser.expression.BinaryExpression |
andExpression(net.sf.jsqlparser.schema.Table table,
net.sf.jsqlparser.expression.Expression where)
delete update 语句 where 处理
|
protected void |
appendSelectItem(java.util.List<net.sf.jsqlparser.statement.select.SelectItem> selectItems)
追加 SelectItem
|
void |
beforePrepare(org.apache.ibatis.executor.statement.StatementHandler sh,
java.sql.Connection connection,
java.lang.Integer transactionTimeout)
StatementHandler.prepare(Connection, Integer) 操作前置处理
改改sql啥的 |
void |
beforeQuery(org.apache.ibatis.executor.Executor executor,
org.apache.ibatis.mapping.MappedStatement ms,
java.lang.Object parameter,
org.apache.ibatis.session.RowBounds rowBounds,
org.apache.ibatis.session.ResultHandler resultHandler,
org.apache.ibatis.mapping.BoundSql boundSql)
Executor.query(MappedStatement, Object, RowBounds, ResultHandler, CacheKey, BoundSql) 操作前置处理
改改sql啥的 |
protected net.sf.jsqlparser.expression.Expression |
builderExpression(net.sf.jsqlparser.expression.Expression currentExpression,
net.sf.jsqlparser.schema.Table table)
处理条件
|
protected boolean |
canEqual(java.lang.Object other) |
boolean |
equals(java.lang.Object o) |
protected net.sf.jsqlparser.schema.Column |
getAliasColumn(net.sf.jsqlparser.schema.Table table)
租户字段别名设置
tenantId 或 tableAlias.tenantId
|
TenantLineHandler |
getTenantLineHandler() |
int |
hashCode() |
protected void |
processDelete(net.sf.jsqlparser.statement.delete.Delete delete,
int index,
java.lang.String sql,
java.lang.Object obj)
delete 语句处理
|
protected void |
processFromItem(net.sf.jsqlparser.statement.select.FromItem fromItem)
处理子查询等
|
protected void |
processInsert(net.sf.jsqlparser.statement.insert.Insert insert,
int index,
java.lang.String sql,
java.lang.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,
java.lang.String sql,
java.lang.Object obj)
查询
|
protected void |
processSelectBody(net.sf.jsqlparser.statement.select.SelectBody selectBody) |
protected void |
processUpdate(net.sf.jsqlparser.statement.update.Update update,
int index,
java.lang.String sql,
java.lang.Object obj)
update 语句处理
|
protected void |
processWhereSubSelect(net.sf.jsqlparser.expression.Expression where)
处理where条件内的子查询
支持如下:
1. in
2. =
3. >
4. <
5. >=
6. <=
7. <>
8.
|
void |
setProperties(java.util.Properties properties) |
void |
setTenantLineHandler(TenantLineHandler tenantLineHandler) |
java.lang.String |
toString() |
parserMulti, parserSingle, processParserbeforeUpdate, willDoQuery, willDoUpdatepublic TenantLineInnerInterceptor()
public TenantLineInnerInterceptor(TenantLineHandler tenantLineHandler)
public void beforeQuery(org.apache.ibatis.executor.Executor executor,
org.apache.ibatis.mapping.MappedStatement ms,
java.lang.Object parameter,
org.apache.ibatis.session.RowBounds rowBounds,
org.apache.ibatis.session.ResultHandler resultHandler,
org.apache.ibatis.mapping.BoundSql boundSql)
throws java.sql.SQLException
InnerInterceptorExecutor.query(MappedStatement, Object, RowBounds, ResultHandler, CacheKey, BoundSql) 操作前置处理
改改sql啥的
beforeQuery 在接口中 InnerInterceptorexecutor - Executor(可能是代理对象)ms - MappedStatementparameter - parameterrowBounds - rowBoundsresultHandler - resultHandlerboundSql - boundSqljava.sql.SQLExceptionpublic void beforePrepare(org.apache.ibatis.executor.statement.StatementHandler sh,
java.sql.Connection connection,
java.lang.Integer transactionTimeout)
InnerInterceptorStatementHandler.prepare(Connection, Integer) 操作前置处理
改改sql啥的
beforePrepare 在接口中 InnerInterceptorsh - StatementHandler(可能是代理对象)connection - ConnectiontransactionTimeout - transactionTimeoutprotected void processSelect(net.sf.jsqlparser.statement.select.Select select,
int index,
java.lang.String sql,
java.lang.Object obj)
JsqlParserSupportprocessSelect 在类中 JsqlParserSupportprotected void processSelectBody(net.sf.jsqlparser.statement.select.SelectBody selectBody)
protected void processInsert(net.sf.jsqlparser.statement.insert.Insert insert,
int index,
java.lang.String sql,
java.lang.Object obj)
JsqlParserSupportprocessInsert 在类中 JsqlParserSupportprotected void processUpdate(net.sf.jsqlparser.statement.update.Update update,
int index,
java.lang.String sql,
java.lang.Object obj)
processUpdate 在类中 JsqlParserSupportprotected void processDelete(net.sf.jsqlparser.statement.delete.Delete delete,
int index,
java.lang.String sql,
java.lang.Object obj)
processDelete 在类中 JsqlParserSupportprotected net.sf.jsqlparser.expression.BinaryExpression 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(java.util.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 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(java.util.Properties properties)
setProperties 在接口中 InnerInterceptorpublic TenantLineHandler getTenantLineHandler()
public void setTenantLineHandler(TenantLineHandler tenantLineHandler)
public java.lang.String toString()
toString 在类中 java.lang.Objectpublic boolean equals(java.lang.Object o)
equals 在类中 java.lang.Objectprotected boolean canEqual(java.lang.Object other)
public int hashCode()
hashCode 在类中 java.lang.Object