1. 程式人生 > >ShardingJDBC的基本配置和使用

ShardingJDBC的基本配置和使用

**原創不易,如需轉載,請註明出處[https://www.cnblogs.com/baixianlong/p/12644027.html](https://www.cnblogs.com/baixianlong/p/12644027.html),希望大家多多支援!!!** # 一、ShardingSphere介紹   ShardingSphere是一套開源的分散式資料庫中介軟體解決方案組成的生態圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(計劃中)這3款相互獨立的產品組成。 他們均提供標準化的資料分片、分散式事務和資料庫治理功能,可適用於如Java同構、異構語言、雲原生等各種多樣化的應用場景。詳細一點的介紹直接看官網:[https://shardingsphere.apache.org/document/current/cn/overview/](https://shardingsphere.apache.org/document/current/cn/overview/) ![s1.png](https://i.loli.net/2020/03/17/2PNMCvTwZEOF5pG.png)   本章我們主要探討如何整合ShardingJDBC, 它使用客戶端直連資料庫,以jar包形式提供服務,無需額外部署和依賴,可理解為增強版的JDBC驅動,完全相容JDBC和各種ORM框架。特點如下: * 適用於任何基於JDBC的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。 * 支援任何第三方的資料庫連線池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。 * 支援任意實現JDBC規範的資料庫。目前支援MySQL,Oracle,SQLServer,PostgreSQL以及任何遵循SQL92標準的資料庫。 # 二、Springboot整合ShardingJDBC ## 方式一:基於配置檔案整合,方便簡單但是不夠靈活,這種方式直接看程式碼:[https://github.com/xianlongbai/sharding-jdbc-boot-demo](https://github.com/xianlongbai/sharding-jdbc-boot-demo) ## 方式二:這裡我們主要基於java config的方式來整合到springboot中,更適合學習和理解。直接上程式碼: //相關依賴 --- //資料來源、分庫分表總體配置 @Configuration @MapperScan(basePackages = "com.bxl.dao.shardingDao", sqlSessionTemplateRef = "shardingSqlSessionTemplate") public class ShardingDataSourceConfig { private static final Logger logger = LoggerFactory.getLogger(ShardingDataSourceConfig.class); //這裡直接注入你專案中配置的資料來源 @Resource private DataSource dataSourceOne; @Resource private DataSource dataSourceTwo; //註釋掉的先不用看,後邊會介紹 @Bean(name = "shardingDataSource") public DataSource dataSource() throws SQLException { TransactionTypeHolder.set(TransactionType.LOCAL); //1、指定需要分庫分表的資料來源