diff --git a/src/main/java/com/xujie/sys/datasource/config/DynamicDataSourceFactory.java b/src/main/java/com/xujie/sys/datasource/config/DynamicDataSourceFactory.java index 244064fa..9f89a782 100644 --- a/src/main/java/com/xujie/sys/datasource/config/DynamicDataSourceFactory.java +++ b/src/main/java/com/xujie/sys/datasource/config/DynamicDataSourceFactory.java @@ -1,16 +1,21 @@ - + package com.xujie.sys.datasource.config; import com.alibaba.druid.pool.DruidDataSource; import com.xujie.sys.datasource.properties.DataSourceProperties; +import com.alibaba.druid.wall.WallConfig; +import com.alibaba.druid.wall.WallFilter; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + /** * DruidDataSource * - * + * * @since 1.0.0 */ public class DynamicDataSourceFactory { @@ -36,6 +41,18 @@ public class DynamicDataSourceFactory { druidDataSource.setMaxOpenPreparedStatements(properties.getMaxOpenPreparedStatements()); druidDataSource.setSharePreparedStatements(properties.isSharePreparedStatements()); + // 配置WallFilter,允许永真条件 - rqrq + WallConfig wallConfig = new WallConfig(); + wallConfig.setSelectWhereAlwayTrueCheck(false); // 禁用永真条件检查 + wallConfig.setMultiStatementAllow(true); // 允许多语句 + + WallFilter wallFilter = new WallFilter(); + wallFilter.setConfig(wallConfig); + + List filters = new ArrayList<>(); + filters.add(wallFilter); + druidDataSource.setProxyFilters(filters); + try { druidDataSource.setFilters(properties.getFilters()); druidDataSource.init(); @@ -44,4 +61,4 @@ public class DynamicDataSourceFactory { } return druidDataSource; } -} \ No newline at end of file +}