sharding jdbc 2.x系列詳解參見https://www.cnblogs.com/zhjh256/p/9221634.html。html
最近將sharding jdbc的配置從xml切換到了spring boot。首先引入依賴:node
<dependency> <groupId>io.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>3.1.0</version> </dependency>
而後按照https://shardingsphere.apache.org/document/legacy/3.x/document/en/manual/sharding-jdbc/configuration/config-spring-boot/配置便可,基本上和xml配置是同樣的。算法
須要注意的是,2.x版本佔位符是${},以下:spring
<sharding:inline-strategy id="orderTableStrategy" sharding-column="order_id" algorithm-expression="t_order_${order_id % 2}" />
3.x版本則是$->{},緣由是跟spring佔位符衝突,以下:express
sharding.jdbc.config.sharding.tables.ibf_acco_confirm.actual-data-nodes=ds$->{0..1}_$->{0..1}.ibf_acco_confirm
規則:apache
sharding.jdbc.config.sharding.tables.ibf_acco_confirm.actual-data-nodes=ds$->{0..1}.ibf_acco_confirm
# 分庫策略,定義了目標庫列表,沒有定義分庫策略的,默認爲default-database-strategy,實際上分庫策略應該就一種,因此應不定義纔對
sharding.jdbc.config.sharding.tables.ibf_acco_confirm.database-strategy.hint.algorithm-class-name=com.hundsun.ta.tabase.sharding.DatabaseShardingAlgorithmByHint
# 表的目標庫列表
sharding.jdbc.config.sharding.tables.t_order_item.actual-data-nodes=ds$->{0..1}.t_order_item$->{0..1}
# 分表策略 sharding.jdbc.config.sharding.tables.t_order_item.table-strategy.inline.sharding-column=order_id sharding.jdbc.config.sharding.tables.t_order_item.table-strategy.inline.algorithm-expression=t_order_item$->{order_id % 2}
# 自定生成id值的列,通常用ID中心,不該使用具體框架的 sharding.jdbc.config.sharding.tables.t_order_item.key-generator-column-name=order_item_id
# 主子表關係定義 #sharding.jdbc.config.sharding.binding-tables=t_order,t_order_item
# 廣播表,既不在sharding.jdbc.config.sharding.tables定義,又沒有定義在broadcast-tables定義的就是全局表
#sharding.jdbc.config.sharding.broadcast-tables=t_config
# 默認的分庫策略,通常不該使用行內算法(groovy的),建議使用algorithm-class-name
sharding.jdbc.config.sharding.default-database-strategy.inline.sharding-column=user_id
sharding.jdbc.config.sharding.default-database-strategy.inline.algorithm-expression=ds$->{user_id % 2}
參考:框架
3.1.0系列:https://shardingsphere.apache.org/document/legacy/3.x/document/en/manual/sharding-jdbc/configuration/config-spring-boot/spring-boot
4.0系列:https://shardingsphere.apache.org/document/current/cn/manual/sharding-jdbc/configuration/config-spring-boot/spa