Issue 1:
in mysql,the column 's name was 'from',when I used insert into with mybatis,it was error,I have add " ` ", but it didn't work

Issue 2:
Service started loading data source error

2023-01-12 15:55:20.059 INFO DESKTOP-D3UDU4O - [ main] c.a.d.p.DruidDataSource : {dataSource-1} inited
2023-01-12 15:55:20.062 INFO DESKTOP-D3UDU4O - [ main] c.h.v.d.DataSourceAwareService : 初始化基础数据源：DataSource-345723898 => {
CreateTime:"2023-01-12 15:55:17",
ActiveCount:0,
PoolingCount:5,
CreateCount:5,
DestroyCount:0,
CloseCount:0,
ConnectCount:0,
Connections:[
{ID:876420389, ConnectTime:"2023-01-12 15:55:18", UseCount:0, LastActiveTime:"2023-01-12 15:55:18"},
{ID:1982703147, ConnectTime:"2023-01-12 15:55:18", UseCount:0, LastActiveTime:"2023-01-12 15:55:18"},
{ID:15058406, ConnectTime:"2023-01-12 15:55:19", UseCount:0, LastActiveTime:"2023-01-12 15:55:19"},
{ID:1994143461, ConnectTime:"2023-01-12 15:55:19", UseCount:0, LastActiveTime:"2023-01-12 15:55:19"},
{ID:710199598, ConnectTime:"2023-01-12 15:55:19", UseCount:0, LastActiveTime:"2023-01-12 15:55:19"}
]
}

[
{
ID:876420389,
poolStatements:[
]
},
{
ID:1982703147,
poolStatements:[
]
},
{
ID:15058406,
poolStatements:[
]
},
{
ID:1994143461,
poolStatements:[
]
},
{
ID:710199598,
poolStatements:[
]
}
]
2023-01-12 15:55:20.190 INFO DESKTOP-D3UDU4O - [ main] c.z.h.HikariDataSource : HikariPool-1 - Starting...
2023-01-12 15:55:20.300 INFO DESKTOP-D3UDU4O - [ main] c.z.h.HikariDataSource : HikariPool-1 - Start completed.
2023-01-12 15:55:20.765 WARN DESKTOP-D3UDU4O - [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceAwareService': Injection of autowired dependencies failed; nested exception is Can't construct a java object for tag:yaml.org,2002:com.alibaba.druid.filter.stat.StatFilter; exception=Class `com.alibaba.druid.filter.stat.StatFilter` is not accepted
in 'string', line 76, column 5:
- &id001 !!com.alibaba.druid.filte ...
^

2023-01-12 15:55:20.765 INFO DESKTOP-D3UDU4O - [ main] o.a.k.c.p.KafkaProducer : [Producer clientId=producer-1] Closing the Kafka producer with timeoutMillis = 30000 ms.
2023-01-12 15:55:20.770 INFO DESKTOP-D3UDU4O - [ main] o.a.c.c.StandardService : Stopping service [Tomcat]
2023-01-12 15:55:20.779 INFO DESKTOP-D3UDU4O - [ main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2023-01-12 15:55:20.789 ERROR DESKTOP-D3UDU4O - [ main] o.s.b.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceAwareService': Injection of autowired dependencies failed; nested exception is Can't construct a java object for tag:yaml.org,2002:com.alibaba.druid.filter.stat.StatFilter; exception=Class `com.alibaba.druid.filter.stat.StatFilter` is not accepted
in 'string', line 76, column 5:
- &id001 !!com.alibaba.druid.filte ...
^

at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:380)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:845)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:744)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:391)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:140)
at com.hnmjm.vehicle.spring.SpringBoot.startWeb(SpringBoot.java:46)
at com.hnmjm.vehicle.midsrv.MiddleServer.main(MiddleServer.java:53)
Caused by: Can't construct a java object for tag:yaml.org,2002:com.alibaba.druid.filter.stat.StatFilter; exception=Class `com.alibaba.druid.filter.stat.StatFilter` is not accepted
in 'string', line 76, column 5:
- &id001 !!com.alibaba.druid.filte ...
^

at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:364)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:270)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:253)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructSequenceStep2(BaseConstructor.java:469)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructSequence(BaseConstructor.java:435)
at org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlSeq.construct(SafeConstructor.java:577)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:270)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:253)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:581)
at org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:213)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:557)
at org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlMap.construct(SafeConstructor.java:600)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:270)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:253)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:581)
at org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:213)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:557)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:193)
at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:358)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:270)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:253)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:207)
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:191)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:477)
at org.yaml.snakeyaml.Yaml.loadAs(Yaml.java:457)
at org.apache.shardingsphere.infra.util.yaml.YamlEngine.unmarshal(YamlEngine.java:83)
at org.apache.shardingsphere.mode.metadata.persist.service.config.database.DataSourcePersistService.getDataSourceProperties(DataSourcePersistService.java:83)
at org.apache.shardingsphere.mode.metadata.persist.service.config.database.DataSourcePersistService.load(DataSourcePersistService.java:71)
at org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService.getEffectiveDataSources(MetaDataPersistService.java:115)
at org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory.createEffectiveDatabaseConfiguration(MetaDataContextsFactory.java:104)
at org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory.lambda$createEffectiveDatabaseConfigurations$1(MetaDataContextsFactory.java:99)
at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1321)
at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.util.Collections$2.tryAdvance(Collections.java:4719)
at java.util.Collections$2.forEachRemaining(Collections.java:4727)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory.createEffectiveDatabaseConfigurations(MetaDataContextsFactory.java:98)
at org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory.create(MetaDataContextsFactory.java:86)
at org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory.create(MetaDataContextsFactory.java:68)
at org.apache.shardingsphere.mode.manager.standalone.StandaloneContextManagerBuilder.build(StandaloneContextManagerBuilder.java:54)
at org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource.createContextManager(ShardingSphereDataSource.java:81)
at org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource.<init>(ShardingSphereDataSource.java:66)
at org.apache.shardingsphere.driver.api.ShardingSphereDataSourceFactory.createDataSource(ShardingSphereDataSourceFactory.java:93)
at org.apache.shardingsphere.driver.api.ShardingSphereDataSourceFactory.createDataSource(ShardingSphereDataSourceFactory.java:77)
at org.apache.shardingsphere.driver.api.ShardingSphereDataSourceFactory.createDataSource(ShardingSphereDataSourceFactory.java:137)
at com.hnmjm.vehicle.db.DataSourceAwareService.setDataSourceInitAware(DataSourceAwareService.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:708)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374)
... 17 more
Caused by: java.lang.IllegalArgumentException: Class `com.alibaba.druid.filter.stat.StatFilter` is not accepted
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:220)
at org.apache.shardingsphere.infra.util.yaml.constructor.ShardingSphereYamlConstructor.getClassForName(ShardingSphereYamlConstructor.java:62)
at org.yaml.snakeyaml.constructor.Constructor.getClassForNode(Constructor.java:683)
at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.getConstructor(Constructor.java:349)
at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:358)
... 73 more

<!-- https://mvnrepository.com/artifact/org.apache.shardingsphere/shardingsphere-jdbc-core -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-jdbc-core</artifactId>
<version>5.3.1</version>
<exclusions>
<exclusion>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/org.yaml/snakeyaml -->
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.33</version>
</dependency>

# ============= 数据源基础配置(这边配置所有数据源共享属性) =============
# 连接池初始化大小，最小，最大
default.initialSize=2
default.minIdle=1
default.maxActive=500
# 配置获取连接等待超时的时间
default.maxWait=60000
# 配置间隔多久才进行一次检测，检测需要关闭的空闲连接，单位是毫秒
default.timeBetweenEvictionRunsMillis=3000
# 配置一个连接在池中最小生存的时间，单位是毫秒
default.minEvictableIdleTimeMillis=300000
default.validationQuery=SELECT 'x' FROM DUAL
default.testWhileIdle=true
default.testOnBorrow=false
default.testOnReturn=false
# 打开PSCache，并且指定每个连接上PSCache的大小
default.poolPreparedStatements=true
default.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters
default.filters=stat
# 默认数据源
db.default=root
# ============= 具体数据源配置(若有需要,可覆盖基础配置属性) =============
# 数据源1
root1.driverClassName=${root-driver:@jdbc.driverClassName1@}
root1.url=${root-url:@jdbc.url1@}
root1.username=${root-username:@jdbc.username1@}
root1.password=${root-password:@jdbc.password1@}
root1.initialSize=5
root1.minIdle=2
root1.maxActive=60

# 数据源2
root2.driverClassName=${root-driver:@jdbc.driverClassName2@}
root2.url=${root-url:@jdbc.url2@}
root2.username=${root-username:@jdbc.username2@}
root2.password=${root-password:@jdbc.password2@}
root2.initialSize=5
root2.minIdle=2
root2.maxActive=60
# 数据源2
root3.driverClassName=${root-driver:@jdbc.driverClassName3@}
root3.url=${root-url:@jdbc.url3@}
root3.username=${root-username:@jdbc.username3@}
root3.password=${root-password:@jdbc.password3@}
root3.initialSize=5
root3.minIdle=2
root3.maxActive=60

# mysql数据源
mysql.driverClassName=@mysql.jdbc.driverClassName@
mysql.url=@mysql.jdbc.url@
mysql.username=@mysql.jdbc.username@
mysql.password=@mysql.jdbc.password@
mysql.initialSize=5
mysql.minIdle=2
mysql.maxActive=60

Map<String, DataSource> dataSourceMap = new HashMap<>(); //设置分库映射

for (String dataSourceName : dataSourceProperties.getDataSourceKeys()) {
final Properties properties = DataSourceProperties.getPropertiesWithNewPrefix(dataSourceName, "druid");
DruidDataSource dataSource = DataSourceProperties.getDataSourceTemplate();
dataSource.setDriverClassName(properties.getProperty("druid.driverClassName"));
dataSource.setUrl(properties.getProperty("druid.url"));
dataSource.setUsername(properties.getProperty("druid.username"));
dataSource.setPassword(properties.getProperty("druid.password"));
if(dataSourceName.contains("root")){
dataSourceMap.put(dataSourceName, dataSource);
}else{
dataSource.configFromPropety(properties);
dataSource.init();
dataSourceRegistry.registerDataSource(dataSourceName, dataSource);
LOG.info("初始化基础数据源：" + dataSource.getName() + " => " + dataSource);
}
}

if(dataSourceMap.size() > 0){
//配置分片策略
ShardingRuleConfiguration shardingRuleConfiguration = new ShardingRuleConfiguration();
List<String> BroadcastTables = new ArrayList<>();
BroadcastTables.add("MJM_REPORT_LAST_POSITION");
BroadcastTables.add("MJM_8702");
BroadcastTables.add("T_SERVER_DB");
BroadcastTables.add("T_GPS_RECORD_LOG_JOB");
BroadcastTables.add("MJM_PICTURE_MATCH");
shardingRuleConfiguration.getBroadcastTables().addAll(BroadcastTables);
List<String> TableRuleConfigs = new ArrayList<>();
TableRuleConfigs.add("MJM_GPS_RECORD");
TableRuleConfigs.add("MJM_JS_ATTACHMENT");
TableRuleConfigs.add("MJM_JS_BLIND_AREA");
TableRuleConfigs.add("MJM_JS_DRIVER_STATUS");
TableRuleConfigs.add("MJM_JS_DRIVING_ASS");
TableRuleConfigs.add("MJM_WARNING");
// TableRuleConfigs.add("WARNING_COLLECT_DAY");
for (String tableName:TableRuleConfigs) {
ShardingTableRuleConfiguration tableRuleConfiguration = new ShardingTableRuleConfiguration(tableName,"root$->{1..3}." + tableName);
tableRuleConfiguration.setDatabaseShardingStrategy(new StandardShardingStrategyConfiguration("ID","inline"));
tableRuleConfiguration.setTableShardingStrategy(new NoneShardingStrategyConfiguration());
shardingRuleConfiguration.getTables().add(tableRuleConfiguration);
Properties props = new Properties();
props.setProperty("algorithm-expression", "root${ID % 3 + 1}");
shardingRuleConfiguration.getShardingAlgorithms().put("inline", new AlgorithmConfiguration("INLINE", props));
}
// shardingRuleConfiguration.getBindingTableGroups().addAll(TableRuleConfigs);

DataSource shardingDataSource = ShardingSphereDataSourceFactory.createDataSource(dataSourceMap , Collections.singleton(shardingRuleConfiguration), getProperties());
ShardingSphereDataSource shardingDataSource1 = (ShardingSphereDataSource) shardingDataSource;
Connection connection = shardingDataSource1.getConnection();
ShardingSphereConnection connection1 = (ShardingSphereConnection)connection;

dataSourceRegistry.registerDataSource("root", shardingDataSource);
LOG.info("初始化ShardingSphere-JDBC基础数据源：" + shardingDataSource);
}