sharding-jdbc源碼解析之jdbc規範重寫

說在前面mysql

本文轉自「天河聊技術」微信公衆號sql

此次主要介紹的是sharding-jdbc的幾個核心接口實現數據庫

 

ShardingConnection安全

類圖以下微信

com.dangdang.ddframe.rdb.sharding.jdbc.unsupported.AbstractUnsupportedOperationConnection不支持操做的數據庫鏈接對象oracle

com.dangdang.ddframe.rdb.sharding.metrics.MetricsContext 度量上下文,實現了計時功能,threadLocal實現線程安全spa

ShardingConnection的適配器類,模板方法、適配器模式實現,方便後期擴展線程

com.dangdang.ddframe.rdb.sharding.jdbc.core.connection.ShardingConnection支持分片的數據源鏈接對象對象

執行上下文對象繼承

sql類型,目前支持這三種類型

 

ShardingDatasource

類圖以下

com.dangdang.ddframe.rdb.sharding.jdbc.unsupported.AbstractUnsupportedOperationDataSource不支持的數據源對象

com.dangdang.ddframe.rdb.sharding.jdbc.adapter.AbstractDataSourceAdapter數據源適配器類用來獲取數據庫鏈接對象,適配器模式實現,方便後期擴展

com.dangdang.ddframe.rdb.sharding.jdbc.core.datasource.ShardingDataSource支持分片的數據庫對象

 

ShardingStatement

類圖以下

com.dangdang.ddframe.rdb.sharding.jdbc.unsupported.AbstractUnsupportedOperationStatement不支持操做的statement,com.dangdang.ddframe.rdb.sharding.jdbc.adapter.AbstractStatementAdapter statement的適配器實現,適配器模式實現

com.dangdang.ddframe.rdb.sharding.jdbc.core.statement.ShardingStatement支持分片的statement

 

ShardingPreparedStatement

類圖以下

com.dangdang.ddframe.rdb.sharding.jdbc.unsupported.AbstractUnsupportedOperationPreparedStatement不支持操做的預編譯statement

com.dangdang.ddframe.rdb.sharding.jdbc.adapter.AbstractPreparedStatementAdapter 預編譯statement的適配器類實現

com.dangdang.ddframe.rdb.sharding.jdbc.core.statement.ShardingPreparedStatement支持分片的預編譯statement

 

ShardingResultSet

類圖以下

com.dangdang.ddframe.rdb.sharding.jdbc.unsupported.AbstractUnsupportedUpdateOperationResultSet 不支持操做的結果集對象

com.dangdang.ddframe.rdb.sharding.jdbc.adapter.AbstractResultSetAdapter 結果集適配器實現,適配器模式

com.dangdang.ddframe.rdb.sharding.jdbc.core.resultset.ShardingResultSet 支持分片的結果集

 

說到最後

本文只要介紹了sharding-jdbc的實現原理,以及實現了jdbc規範的幾個主要的類,因而可知sharding-jdbc是對jbdc規範的一種實現,和mysql和oracle的數據庫驅動實現同樣,sharding-jdbc是一種加強的支持分片的數據庫驅動, 這幾個對象都是適配器模式對原生態的jdbc規範的進一步擴展,都是用繼承這種方式實現的適配器模式,還能夠利用接口的方式實現適配器模式,以上內容僅供參考。

相關文章
相關標籤/搜索