
本文共 27031 字,大约阅读时间需要 90 分钟。
ShardingJDBC������������
pom������������
4.0.0 org.datang shardingjdbc1 1.0-SNAPSHOT org.apache.shardingsphere sharding-jdbc-core 4.0.0-RC2 mysql mysql-connector-java 5.1.48 com.alibaba druid 1.1.21
������������
/*SQLyog v10.2 MySQL - 5.7.24 : Database - sd**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;CREATE DATABASE /*!32312 IF NOT EXISTS*/`sd` /*!40100 DEFAULT CHARACTER SET latin1 */;USE `sd`;/*Table structure for table `t_order` */DROP TABLE IF EXISTS `t_order`;CREATE TABLE `t_order` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order` */insert into `t_order`(`user_id`,`order_id`,`product_name`) values (1,1,'������1'),(2,2,'������2'),(3,3,'������3'),(4,4,'������4'),(5,5,'������5'),(6,6,'������6'),(7,7,'������7'),(8,8,'������8'),(9,9,'������9'),(10,10,'������10');/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
���������������������
���������������������������������ShardingJDBC���������������������������������������������
package sjfp;import com.alibaba.druid.pool.DruidDataSource;import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;import org.apache.shardingsphere.api.config.sharding.TableRuleConfiguration;import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;import javax.sql.DataSource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.HashMap;import java.util.Map;import java.util.Properties;//������������,���������������������public class SJFPDemo1 { public static void main(String[] args) throws Exception { // ��������������������� MapdataSourceMap = new HashMap<>(); DruidDataSource druidDataSource1 = new DruidDataSource(); druidDataSource1.setDriverClassName("com.mysql.jdbc.Driver"); druidDataSource1.setUrl("jdbc:mysql://39.105.59.232:3306/sd"); druidDataSource1.setUsername("root"); druidDataSource1.setPassword("1"); dataSourceMap.put("sd", druidDataSource1); TableRuleConfiguration orderTableRuleConfig = new TableRuleConfiguration("t_order", "sd.t_order"); // ������������������ ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); shardingRuleConfig.getTableRuleConfigs().add(orderTableRuleConfig); DataSource dataSource = ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, new Properties()); Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement("select * from t_order"); ResultSet resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { int userId = resultSet.getInt(1); int orderId = resultSet.getInt(2); String productName = resultSet.getString(3); System.out.println(userId + "----" + orderId + "----" + productName); } }}
���������������������
������ShardingJDBC���������������������������������������������������������������������������������������������������������������������������������������������������������������
/*SQLyog v10.2 MySQL - 5.7.24 : Database - sd**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;CREATE DATABASE /*!32312 IF NOT EXISTS*/`sd` /*!40100 DEFAULT CHARACTER SET latin1 */;USE `sd`;/*Table structure for table `t_order0` */DROP TABLE IF EXISTS `t_order0`;CREATE TABLE `t_order0` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order0` */insert into `t_order0`(`user_id`,`order_id`,`product_name`) values (1,1,'������1'),(2,2,'������2'),(3,3,'������3'),(4,4,'������4'),(5,5,'������5'),(6,6,'������6'),(7,7,'������7'),(8,8,'������8'),(9,9,'������9'),(10,10,'������10');/*Table structure for table `t_order1` */DROP TABLE IF EXISTS `t_order1`;CREATE TABLE `t_order1` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order1` *//*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
������t_order������������������������������t_order0������������������������������������������������������������������������������������������
package sjfp;import com.alibaba.druid.pool.DruidDataSource;import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;import org.apache.shardingsphere.api.config.sharding.TableRuleConfiguration;import org.apache.shardingsphere.api.config.sharding.strategy.InlineShardingStrategyConfiguration;import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;import javax.sql.DataSource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.HashMap;import java.util.Map;import java.util.Properties;//������������,������public class SJFPDemo2 { public static void main(String[] args) throws Exception { // ��������������������� MapdataSourceMap = new HashMap<>(); DruidDataSource druidDataSource1 = new DruidDataSource(); druidDataSource1.setDriverClassName("com.mysql.jdbc.Driver"); druidDataSource1.setUrl("jdbc:mysql://39.105.59.232:3306/sd"); druidDataSource1.setUsername("root"); druidDataSource1.setPassword("1"); dataSourceMap.put("sd", druidDataSource1); // ������Order��������� TableRuleConfiguration orderTableRuleConfig = new TableRuleConfiguration("t_order", "sd.t_order${0..1}"); // ������������������ orderTableRuleConfig.setTableShardingStrategyConfig(new InlineShardingStrategyConfiguration("order_id", "t_order${order_id % 2}")); // ������������������ ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); shardingRuleConfig.getTableRuleConfigs().add(orderTableRuleConfig); DataSource dataSource = ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, new Properties()); Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement("select * from t_order"); ResultSet resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { int userId = resultSet.getInt(1); int orderId = resultSet.getInt(2); String productName = resultSet.getString(3); System.out.println(userId + "----" + orderId + "----" + productName); } }}
������������������TableRuleConfiguration���������t_order���������������������t_order������������������������������setTableShardingStrategyConfig������������������������������������������������������������������������������order_id%2������������������������������������order_id���int������������������0������1���
������������������������������������������������������������������������������
package sjfp;import com.alibaba.druid.pool.DruidDataSource;import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;import org.apache.shardingsphere.api.config.sharding.TableRuleConfiguration;import org.apache.shardingsphere.api.config.sharding.strategy.InlineShardingStrategyConfiguration;import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;import javax.sql.DataSource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.HashMap;import java.util.Map;import java.util.Properties;//������������,������public class SJFPDemo3 { public static void main(String[] args) throws Exception { // ��������������������� MapdataSourceMap = new HashMap<>(); DruidDataSource druidDataSource1 = new DruidDataSource(); druidDataSource1.setDriverClassName("com.mysql.jdbc.Driver"); druidDataSource1.setUrl("jdbc:mysql://39.105.59.232:3306/sd"); druidDataSource1.setUsername("root"); druidDataSource1.setPassword("1"); dataSourceMap.put("sd", druidDataSource1); // ������Order��������� TableRuleConfiguration orderTableRuleConfig = new TableRuleConfiguration("t_order", "sd.t_order${0..1}"); // ������������������ orderTableRuleConfig.setTableShardingStrategyConfig(new InlineShardingStrategyConfiguration("order_id", "t_order${order_id % 2}")); // ������������������ ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); shardingRuleConfig.getTableRuleConfigs().add(orderTableRuleConfig); DataSource dataSource = ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, new Properties()); Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement1 = connection.prepareStatement("insert into t_order (order_id,product_name) values(11,'������11')"); preparedStatement1.execute(); PreparedStatement preparedStatement = connection.prepareStatement("select * from t_order"); ResultSet resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { int userId = resultSet.getInt(1); int orderId = resultSet.getInt(2); String productName = resultSet.getString(3); System.out.println(userId + "----" + orderId + "----" + productName); } }}
������������������������������������������������������������t_order1���������������������������������������������������������������t_order1���������������������id���1���������������������id������������������������������������������������������������������������������������������id���������������������
/*SQLyog v10.2 MySQL - 5.7.24 : Database - sd**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;CREATE DATABASE /*!32312 IF NOT EXISTS*/`sd` /*!40100 DEFAULT CHARACTER SET latin1 */;USE `sd`;/*Table structure for table `t_order0` */DROP TABLE IF EXISTS `t_order0`;CREATE TABLE `t_order0` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order0` */insert into `t_order0`(`user_id`,`order_id`,`product_name`) values (1,1,'������1'),(2,2,'������2'),(3,3,'������3'),(4,4,'������4'),(5,5,'������5'),(6,6,'������6'),(7,7,'������7'),(8,8,'������8'),(9,9,'������9'),(10,10,'������10');/*Table structure for table `t_order1` */DROP TABLE IF EXISTS `t_order1`;CREATE TABLE `t_order1` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order1` */insert into `t_order1`(`user_id`,`order_id`,`product_name`) values (1,11,'������11');/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
���������������������������������������������������������id���������������������������������������������������������������������id������������������������������
package sjfp;import com.alibaba.druid.pool.DruidDataSource;import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;import org.apache.shardingsphere.api.config.sharding.TableRuleConfiguration;import org.apache.shardingsphere.api.config.sharding.strategy.InlineShardingStrategyConfiguration;import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;import javax.sql.DataSource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.HashMap;import java.util.Map;import java.util.Properties;//������������,������public class SJFPDemo4 { public static void main(String[] args) throws Exception { // ��������������������� MapdataSourceMap = new HashMap<>(); DruidDataSource druidDataSource1 = new DruidDataSource(); druidDataSource1.setDriverClassName("com.mysql.jdbc.Driver"); druidDataSource1.setUrl("jdbc:mysql://39.105.59.232:3306/sd"); druidDataSource1.setUsername("root"); druidDataSource1.setPassword("1"); dataSourceMap.put("sd", druidDataSource1); // ������Order��������� TableRuleConfiguration orderTableRuleConfig = new TableRuleConfiguration("t_order", "sd.t_order${0..1}"); // ������������������ orderTableRuleConfig.setTableShardingStrategyConfig(new InlineShardingStrategyConfiguration("order_id", "t_order${order_id % 2}")); // ������������������ ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); shardingRuleConfig.getTableRuleConfigs().add(orderTableRuleConfig); DataSource dataSource = ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, new Properties()); Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement1 = connection.prepareStatement("delete from t_order where user_id=1"); preparedStatement1.execute(); PreparedStatement preparedStatement = connection.prepareStatement("select * from t_order"); ResultSet resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { int userId = resultSet.getInt(1); int orderId = resultSet.getInt(2); String productName = resultSet.getString(3); System.out.println(userId + "----" + orderId + "----" + productName); } }}
������������������������������������
/*SQLyog v10.2 MySQL - 5.7.24 : Database - sd**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;CREATE DATABASE /*!32312 IF NOT EXISTS*/`sd` /*!40100 DEFAULT CHARACTER SET latin1 */;USE `sd`;/*Table structure for table `t_order0` */DROP TABLE IF EXISTS `t_order0`;CREATE TABLE `t_order0` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order0` */insert into `t_order0`(`user_id`,`order_id`,`product_name`) values (2,2,'������2'),(3,3,'������3'),(4,4,'������4'),(5,5,'������5'),(6,6,'������6'),(7,7,'������7'),(8,8,'������8'),(9,9,'������9'),(10,10,'������10');/*Table structure for table `t_order1` */DROP TABLE IF EXISTS `t_order1`;CREATE TABLE `t_order1` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order1` *//*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
���������������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������order���
/*SQLyog v10.2 MySQL - 5.7.24 : Database - sd0**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;CREATE DATABASE /*!32312 IF NOT EXISTS*/`sd0` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;USE `sd0`;/*Table structure for table `t_order0` */DROP TABLE IF EXISTS `t_order0`;CREATE TABLE `t_order0` ( `user_id` int(11) NOT NULL, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;DROP TABLE IF EXISTS `t_order1`;CREATE TABLE `t_order1` ( `user_id` int(11) NOT NULL, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order0` *//*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*SQLyog v10.2 MySQL - 5.7.24 : Database - sd0**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;CREATE DATABASE /*!32312 IF NOT EXISTS*/`sd1` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;USE `sd1`;/*Table structure for table `t_order0` */DROP TABLE IF EXISTS `t_order0`;CREATE TABLE `t_order0` ( `user_id` int(11) NOT NULL, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;DROP TABLE IF EXISTS `t_order1`;CREATE TABLE `t_order1` ( `user_id` int(11) NOT NULL, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order0` *//*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
package sjfp;import com.alibaba.druid.pool.DruidDataSource;import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;import org.apache.shardingsphere.api.config.sharding.TableRuleConfiguration;import org.apache.shardingsphere.api.config.sharding.strategy.InlineShardingStrategyConfiguration;import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;import javax.sql.DataSource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.HashMap;import java.util.Map;import java.util.Properties;//������������,���������������������public class SJFPDemo5 { public static void main(String[] args) throws Exception { // ��������������������� MapdataSourceMap = new HashMap<>(); DruidDataSource druidDataSource1 = new DruidDataSource(); druidDataSource1.setDriverClassName("com.mysql.jdbc.Driver"); druidDataSource1.setUrl("jdbc:mysql://39.105.59.232:3306/sd0"); druidDataSource1.setUsername("root"); druidDataSource1.setPassword("1"); dataSourceMap.put("sd0", druidDataSource1); DruidDataSource druidDataSource2 = new DruidDataSource(); druidDataSource2.setDriverClassName("com.mysql.jdbc.Driver"); druidDataSource2.setUrl("jdbc:mysql://39.105.59.232:3306/sd1"); druidDataSource2.setUsername("root"); druidDataSource2.setPassword("1"); dataSourceMap.put("sd1", druidDataSource2); // ������Order��������� TableRuleConfiguration orderTableRuleConfig = new TableRuleConfiguration("t_order", "sd${0..1}.t_order${0..1}"); // ������������ + ������������ orderTableRuleConfig.setDatabaseShardingStrategyConfig(new InlineShardingStrategyConfiguration("user_id", "sd${user_id % 2}")); orderTableRuleConfig.setTableShardingStrategyConfig(new InlineShardingStrategyConfiguration("order_id", "t_order${order_id % 2}")); // ������������������ ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); shardingRuleConfig.getTableRuleConfigs().add(orderTableRuleConfig); DataSource dataSource = ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig, new Properties()); Connection connection = dataSource.getConnection(); for (int i = 1; i < 20; i++) { PreparedStatement preparedStatement = connection.prepareStatement("insert into t_order (user_id,order_id,product_name) values (" + i + "," + i + ",'������" + i + "')"); preparedStatement.execute(); } PreparedStatement preparedStatement = connection.prepareStatement("select * from t_order"); ResultSet resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { int userId = resultSet.getInt(1); int orderId = resultSet.getInt(2); String productName = resultSet.getString(3); System.out.println(userId + "----" + orderId + "----" + productName); } }}
������������������������������������������������sd0������t_order0������sd1������t_order1���������������������������������������������������������user_id%2���0���������sd0������������sd0���������������������id������sd1������������������������������������������������������order_id%2���0���������������t_order0������������0���������t_order1���������������������sd0������������t_order0������������������sd1������������t_order1���������������
/*SQLyog v10.2 MySQL - 5.7.24 : Database - sd0**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;CREATE DATABASE /*!32312 IF NOT EXISTS*/`sd0` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;USE `sd0`;/*Table structure for table `t_order0` */DROP TABLE IF EXISTS `t_order0`;CREATE TABLE `t_order0` ( `user_id` int(11) NOT NULL, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order0` */insert into `t_order0`(`user_id`,`order_id`,`product_name`) values (2,2,'������2'),(4,4,'������4'),(6,6,'������6'),(8,8,'������8'),(10,10,'������10'),(12,12,'������12'),(14,14,'������14'),(16,16,'������16'),(18,18,'������18');/*Table structure for table `t_order1` */DROP TABLE IF EXISTS `t_order1`;CREATE TABLE `t_order1` ( `user_id` int(11) NOT NULL, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order1` *//*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*SQLyog v10.2 MySQL - 5.7.24 : Database - sd1**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;CREATE DATABASE /*!32312 IF NOT EXISTS*/`sd1` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;USE `sd1`;/*Table structure for table `t_order0` */DROP TABLE IF EXISTS `t_order0`;CREATE TABLE `t_order0` ( `user_id` int(11) NOT NULL, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order0` *//*Table structure for table `t_order1` */DROP TABLE IF EXISTS `t_order1`;CREATE TABLE `t_order1` ( `user_id` int(11) NOT NULL, `order_id` int(11) NOT NULL, `product_name` varchar(10) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;/*Data for the table `t_order1` */insert into `t_order1`(`user_id`,`order_id`,`product_name`) values (1,1,'������1'),(3,3,'������3'),(5,5,'������5'),(7,7,'������7'),(9,9,'������9'),(11,11,'������11'),(13,13,'������13'),(15,15,'������15'),(17,17,'������17'),(19,19,'������19');/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
发表评论
最新留言
关于作者
