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节一开始的那张图。

posted @   邱明成  阅读(504)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示