一、什么是Sharding-JDBC
Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。
二、Sharding-JDBC能做什么
分库 & 分表
读写分离
分布式主键
分布式事务
三、适用项目框架
Sharding-JDBC适用于:
任何基于Java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。
基于任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。
支持任意实现JDBC规范的数据库,目前支持MySQL,Oracle,SQLServer和PostgreSQL。
四、Maven依赖
io.shardingsphere
sharding-core
${sharding.version}
io.shardingsphere
sharding-jdbc-spring-namespace
${sharding.version}
io.shardingsphere
sharding-transaction-2pc-xa
${sharding.version}
io.shardingsphere
sharding-transaction-spring
${sharding.version}
org.aspectj
aspectjweaver
${aspectjweaver.version}
五、读写分离
5.1 数据源配置
先配置数据源
也可以配置读写分离
以下配置是
ds0
和
ds1
两个数据库的主和从一共四个数据源。
parentDs
是数据源公共的配置,抽出去以免写重复代码。
5.2 读写分离配置
只配置主从不配置分库分表的情况如下,如果要配置分库分表则不需要下面这个配置。
master-data-source-name
是主数据源ID
slave-data-source-names
是从数据源ID
${sql_show}