guwd vor 5 Jahren
Ursprung
Commit
8b9cf07b70

+ 4 - 0
pom.xml

@@ -33,6 +33,10 @@
 			<groupId>net.mingsoft</groupId>
 			<artifactId>ms-mpeople</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>net.mingsoft</groupId>
+			<artifactId>ms-db</artifactId>
+		</dependency>
 
 		<!-- 此部分是铭飞平台MStroe的客户端(MStore不在铭飞开源产品范围),如果不需要使用MStore可以删除掉 -->
 		<dependency>

+ 0 - 43
src/main/java/net/mingsoft/config/MybatisInterceptorConfig.java

@@ -1,43 +0,0 @@
-package net.mingsoft.config;
-
-import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
-import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
-import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
-import net.mingsoft.interceptor.DMInnerInterceptor;
-import net.mingsoft.interceptor.MysqlInnerInterceptor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import javax.sql.DataSource;
-import java.sql.SQLException;
-
-/**
- * Mybatis 拦截器配置
- */
-@Configuration
-public class MybatisInterceptorConfig {
-
-    @Bean
-    public MybatisPlusInterceptor mybatisPlusInterceptor(DataSource dataSource, @Autowired(required = false) TenantLineHandler tenantLineHandler) {
-        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
-        if(tenantLineHandler!=null){
-            interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(tenantLineHandler));
-        }
-        try {
-            //mysql 添加转换sql
-            DbType dbType = JdbcUtils.getDbType(dataSource.getConnection().getMetaData().getURL());
-            if(DbType.MYSQL==dbType){
-                interceptor.addInnerInterceptor(new MysqlInnerInterceptor());
-            }else if(DbType.DM==dbType){
-                interceptor.addInnerInterceptor( new DMInnerInterceptor());
-            }
-        } catch (SQLException e) {
-            e.printStackTrace();
-        }
-
-        return interceptor;
-    }
-}

+ 0 - 61
src/main/java/net/mingsoft/interceptor/DMInnerInterceptor.java

@@ -1,61 +0,0 @@
-package net.mingsoft.interceptor;
-
-import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
-import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
-import com.baomidou.mybatisplus.core.toolkit.TableNameParser;
-import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
-import org.apache.ibatis.executor.Executor;
-import org.apache.ibatis.executor.statement.StatementHandler;
-import org.apache.ibatis.mapping.BoundSql;
-import org.apache.ibatis.mapping.MappedStatement;
-import org.apache.ibatis.mapping.SqlCommandType;
-import org.apache.ibatis.session.ResultHandler;
-import org.apache.ibatis.session.RowBounds;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class DMInnerInterceptor  implements InnerInterceptor {
-
-    @Override
-    public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
-        PluginUtils.MPBoundSql mpBs = PluginUtils.mpBoundSql(boundSql);
-        if (InterceptorIgnoreHelper.willIgnoreDynamicTableName(ms.getId())) return;
-        mpBs.sql(this.changeTable(mpBs.sql()));
-    }
-
-    @Override
-    public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) {
-        PluginUtils.MPStatementHandler mpSh = PluginUtils.mpStatementHandler(sh);
-        MappedStatement ms = mpSh.mappedStatement();
-        SqlCommandType sct = ms.getSqlCommandType();
-        if (sct == SqlCommandType.INSERT || sct == SqlCommandType.UPDATE || sct == SqlCommandType.DELETE) {
-            if (InterceptorIgnoreHelper.willIgnoreDynamicTableName(ms.getId())) return;
-            PluginUtils.MPBoundSql mpBs = mpSh.mPBoundSql();
-            mpBs.sql(this.changeTable(mpBs.sql()));
-        }
-    }
-
-    protected String changeTable(String sql) {
-        TableNameParser parser = new TableNameParser(sql);
-        List<TableNameParser.SqlToken> names = new ArrayList<>();
-        parser.accept(names::add);
-        StringBuilder builder = new StringBuilder();
-        int last = 0;
-        for (TableNameParser.SqlToken name : names) {
-            int start = name.getStart();
-            if (start != last) {
-                builder.append(sql, last, start);
-                String value = name.getValue();
-                builder.append(String.format("\"%s\"",value));
-            }
-            last = name.getEnd();
-        }
-        if (last != sql.length()) {
-            builder.append(sql.substring(last));
-        }
-        return builder.toString();
-    }
-}

+ 0 - 45
src/main/java/net/mingsoft/interceptor/MysqlInnerInterceptor.java

@@ -1,45 +0,0 @@
-package net.mingsoft.interceptor;
-
-import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
-import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
-import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
-import org.apache.ibatis.executor.Executor;
-import org.apache.ibatis.executor.statement.StatementHandler;
-import org.apache.ibatis.mapping.BoundSql;
-import org.apache.ibatis.mapping.MappedStatement;
-import org.apache.ibatis.mapping.SqlCommandType;
-import org.apache.ibatis.session.ResultHandler;
-import org.apache.ibatis.session.RowBounds;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-
-/**
- * Mysql 适配通用拦截器,主要处理不支持的sql语句
- */
-public class MysqlInnerInterceptor implements InnerInterceptor {
-
-    @Override
-    public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
-        PluginUtils.MPBoundSql mpBs = PluginUtils.mpBoundSql(boundSql);
-        if (InterceptorIgnoreHelper.willIgnoreDynamicTableName(ms.getId())) return;
-        mpBs.sql(this.changeSql(mpBs.sql()));
-    }
-
-    @Override
-    public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) {
-        PluginUtils.MPStatementHandler mpSh = PluginUtils.mpStatementHandler(sh);
-        MappedStatement ms = mpSh.mappedStatement();
-        SqlCommandType sct = ms.getSqlCommandType();
-        if (sct == SqlCommandType.INSERT || sct == SqlCommandType.UPDATE || sct == SqlCommandType.DELETE) {
-            if (InterceptorIgnoreHelper.willIgnoreDynamicTableName(ms.getId())) return;
-            PluginUtils.MPBoundSql mpBs = mpSh.mPBoundSql();
-            mpBs.sql(this.changeSql(mpBs.sql()));
-        }
-    }
-
-    protected String changeSql(String sql) {
-        //替换所有"为`
-        return sql.replaceAll("\"","`");
-    }
-}