Issue 1:
Which version of ShardingSphere did you use?

ShardingSphere-JDBC 5.1.0 + spring boot 2.3.10

<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
<version>5.1.1</version>
</dependency>

Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?

ShardingSphere-JDBC

Expected behavior

Use a simple example to divide the database

Actual behavior

Route table null does not exist, available actual table: [oms_master_order_0, oms_master_order_1]

Reason analyze (If you can)

to configure oms_master_order_$->{id % 2}

Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.

This is my configuration

spring.shardingsphere.enabled=true
spring.shardingsphere.datasource.names=oms
spring.shardingsphere.datasource.oms.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.oms.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.oms.url=jdbc:mysql://192.168.0.128:3306/yidian_oms?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
spring.shardingsphere.datasource.oms.username=root
spring.shardingsphere.datasource.oms.password=root

spring.shardingsphere.rules.sharding.tables.oms_master_order.actual-data-nodes=oms.oms_master_order_$->{0..1}
spring.shardingsphere.rules.sharding.tables.oms_master_order.table-strategy.standard.sharding-column=id
spring.shardingsphere.rules.sharding.tables.oms_master_order.table-strategy.standard.sharding-algorithm-name=master-order-inline
spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.type=INLINE
#spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.props=strategy
#spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.props.algorithmClassName=cn.dian1.oms.core.sharding.TableShardingAlgorithm
spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.props.algorithm-expression=oms_master_order_$->{id % 2}
spring.shardingsphere.props.sql-show=true

This is the statement I execute SQL :

@GetMapping(value = "/testSharding")
public String testSharding() {
jdbcTemplate.update("insert into oms_master_order (id, masterOrderNo, containerNumber, create_time) values (?,?,?,?)",
100, "100", "123456", new Date());
// 100, "100", "123456", '2022-06-15 14:24:41');
return "成功了";
}

This may be the reason for the problem. I don't understand that there will be a parsing failure and a "null" will be returned

I found that all implementation classes of standardshardingalgorithm did not execute the init () method.

My environment is in springboot

Example codes for reproduce this issue (such as a github link).

Issue 2:
Feature Request

Is your feature request related to a problem?

No

Describe the feature you would like.

There is a syntax for creating a shadow algorithm separately in Distsql, but cannot use a separately created shadow algorithm to create a shadow rule(I'v already check the Antler file). This makes it moot to create the shadow algorithm alone.

Please complete the syntax of using shadow algorithm to create shadow rule.