Skip to content
Sharding-Sphere examples
Java TSQL Shell
Branch: dev
Clone or download
cherrylzhao fix executing error for transaction-xa-eample (#196)
* throw exception when insert error

* fix address_id not exist error for transaction-raw-xa

* use jdbcTemplate to simplify transaction example for XA
Latest commit 4d8319c Nov 18, 2019


Example for 1.x please see tags in${tag}/sharding-jdbc-example

Example for 2.x or 3.x or 4.x please see tags in${tag}

Need attention

  • Please do not use dev branch to run your example, example of dev branch is not released yet.

  • The manual schema initial script is in, please execute it before you first run the example.

  • Please make sure master-slave data sync on MySQL is running correctly. Otherwise this example will query empty data from slave.

Before start the example if you want use dev branch

Please make sure some dependencies from shardingsphere and shardingsphere-spi-impl have been installed since some examples depend on that. if you are a newbie for shardingsphere, you could prepare the dependencies as following: and install shardingsphere:

## download the code of shardingsphere
git clone

## checkout a specific version, example is 4.0.0-RC1
cd incubator-shardingsphere && git checkout 4.0.0-RC1

## install the dependencies
mvn clean install -Prelease and install shardingsphere-spi-impl:

## download the code of shardingsphere-spi-impl
git clone

## checkout a specific version, example is 4.0.0-RC1
cd shardingsphere-spi-impl && git checkout 4.0.0-RC1

## install the dependencies
mvn clean install

shardingsphere-example module design

project structure

  ├── example-core
  │   ├── config-utility
  │   ├── example-api
  │   ├── example-raw-jdbc
  │   ├── example-spring-jpa
  │   └── example-spring-mybatis
  ├── sharding-jdbc-example
  │   ├── sharding-example
  │   │   ├── sharding-raw-jdbc-example
  │   │   ├── sharding-spring-boot-jpa-example
  │   │   ├── sharding-spring-boot-mybatis-example
  │   │   ├── sharding-spring-namespace-jpa-example
  │   │   └── sharding-spring-namespace-mybatis-example
  │   ├── orchestration-example
  │   │   ├── orchestration-raw-jdbc-example
  │   │   ├── orchestration-spring-boot-example
  │   │   └── orchestration-spring-namespace-example
  │   ├── transaction-example
  │   │   ├── transaction-2pc-xa-example
  │   │   └──transaction-base-seata-example
  │   ├── other-feature-example
  │   │   ├── hint-example
  │   │   └── encrypt-example
  ├── sharding-proxy-example
  │   └── sharding-proxy-boot-mybatis-example
  └── src/resources
        └── manual_schema.sql

Best practice for sharding data

  • sharding databases
  • sharding tables
  • sharding databases and tables
  • master-slave
  • sharding & master-slave

You can get more detail from sharding-example

Best practice for sharding + orchestration

  • using local configuration file for zookeeper/etcd & sharding
  • using register center(zookeeper/etcd)'s configuration for sharding

You can get more detail from orchestration-example

Best Practice for sharding + distribution-transaction

  • 2pc-xa transaction
  • base-seata transaction

You can get more detail from transaction-example

Best Practice for hint routing

You can get more detail from hint-example

Best Practice for data encrypt

You can get more detail from encrypt-example

Best Practice for APM

We will add APM example recently.

Best Practice for sharding-proxy.

We prefer to add a docker base example recently.

how to use docker to config sharding-jdbc & sharding-proxy (Optional)

You can’t perform that action at this time.