1. 概述

本文主要分享 JDBC读写分离 的实现。为什么会把这两个东西放在一起讲呢?客户端直连数据库的读写分离主要通过获取读库和写库的不同连接来实现,和 JDBC Connection 刚好放在一块。

OK,我们先来看一段 Sharding-JDBC 官方对自己的定义和定位

Sharding-JDBC定位为轻量级java框架,使用客户端直连数据库,以jar包形式提供服务,未使用中间层,无需额外部署,无其他依赖,DBA也无需改变原有的运维方式,可理解为增强版的JDBC驱动,旧代码迁移成本几乎为零。

可以看出,Sharding-JDBC 通过实现 JDBC规范,对上层提供透明化数据库分库分表的访问。

黑科技?实际我们使用的数据库连接池也是通过这种方式实现对上层无感知的提供连接池。甚至还可以通过这种方式实现对 Lucene、MongoDB 等等的访问。

扯远了,下面来看看 Sharding-JDBC jdbc 包的结构:

  • unsupported:声明不支持的数据操作方法

  • adapter:适配类,实现和分库分表无关的方法

  • core:核心类,实现和分库分表相关的方法

根据 core 包,可以看出分到四种我们超级熟悉的对象

  • Datasource


  • Connection


  • Statement


  • ResultSet


实现层级如下:JDBC 接口 <=(继承)== unsupported抽象类 <=(继承)== unsupported抽象类 <=(继承)== core


本文内容顺序

  1. unspported 包

  2. adapter 包

  3. 插入流程,分析的类:

  • ShardingDataSource

  • ShardingConnection

  • ShardingPreparedStatement(ShardingStatement 类似,不重复分析)

  • GeneratedKeysResultSet、GeneratedKeysResultSetMetaData

查询流程,分析的类:

  • ShardingPreparedStatement

  • ShardingResultSet

读写分离,分析的类:

  • MasterSlaveDataSource


Sharding-JDBC 正在收集使用公司名单:传送门。
©著作权归作者所有:来自51CTO博客作者mb5ff80520dfa04的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 改写
  2. 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 解析(六)
  3. 数据库[分库分表]中间件 Sharding-JDBC 源码分析 —— SQL 解析(
  4. 数据库中间件 Sharding-JDBC 源码分析 —— SQL 解析(三)之查询SQL
  5. 数据库中间件 MyCAT 源码分析 —— SQL ON MongoDB
  6. 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 路由(一)
  7. 数据库读写分离这个坑,让刚入职的我一脸懵逼!
  8. 老大甩给我 30G 文件,让小黑哥几天内全部导入到数据库
  9. 干货丨时序数据库DolphinDB横截面引擎教程

随机推荐

  1. XML开发基础-使用CSS显示XML的详解
  2. 详解XML与现代CGI应用程序的示例代码
  3. 详细介绍使用UTF-8对XML文档进行编码
  4. 详细介绍XML在Web应用中的优势体现
  5. XML-在xslt中添加链接的方式的代码分享
  6. 网页编程-XML文法分析详解
  7. 详解在XML文档中替换元素名称的方法(图)
  8. 详解XML的四种解析器原理及性能比较
  9. 详细介绍Asp与XML的关系
  10. xml创建根节点、子节点的示例代码分享