sharding-jdbc-how2work 當當的sharding-jdbc剖析(查詢)


1. 以JDBC作為出發點

1.1 重新實現了JDBC的幾個接口

實現javax.sql.DataSource接口  ShardingDataSource
實現java.sql.Connection接口 ShardingConnection
實現java.sql.Statement ShardingStatement
實現java.sql.PreparedStatement ShardingPreparedStatement
實現java.sql.ResultSet AbstractShardingResultSet

重新實現的模式是adapter的模式

具體的實現分析見下面的思維導圖

2016-12-01 18-36-15_XMind - D__600.self_05.code_04.java_15.sharding-jdbc-how2work_how2work-doc_shard

1.2 聚合 比較排序的處理

2016-12-01 18-44-50_XMind - D__600.self_05.code_04.java_15.sharding-jdbc-how2work_how2work-doc_shard

2. Executor

2016-12-01 18-45-39_XMind - D__600.self_05.code_04.java_15.sharding-jdbc-how2work_how2work-doc_shard

3. Route

2016-12-01 18-46-49_XMind - D__600.self_05.code_04.java_15.sharding-jdbc-how2work_how2work-doc_shard

4. Parse后visitor的處理

2016-12-01 18-48-59_XMind - D__600.self_05.code_04.java_15.sharding-jdbc-how2work_how2work-doc_shard

4.1  AbstractMySQLVisitor 處理細節

2016-12-01 18-50-39_XMind - D__600.self_05.code_04.java_15.sharding-jdbc-how2work_how2work-doc_shard

4.2 MySQLSelectVisitor 邏輯

2016-12-01 18-50-52_XMind - D__600.self_05.code_04.java_15.sharding-jdbc-how2work_how2work-doc_shard

delete insert  update的見第4節一開始的那張圖。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM