shardingJDBC分库分表
发布日期:2021-05-09 09:33:55 浏览次数:10 分类:博客文章

本文共 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
View Code

������������

/*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 */;
View Code

���������������������

���������������������������������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 {        // ���������������������        Map
dataSourceMap = 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); } }}
View Code

���������������������

������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 */;
View Code

������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 {        // ���������������������        Map
dataSourceMap = 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); } }}
View Code

������������������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 {        // ���������������������        Map
dataSourceMap = 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); } }}
View Code

������������������������������������������������������������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 */;
View Code

���������������������������������������������������������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 {        // ���������������������        Map
dataSourceMap = 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); } }}
View Code

������������������������������������

/*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 */;
View Code

��������������� 

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������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 */;
View Code
/*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 */;
View Code

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

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 {        // ���������������������        Map
dataSourceMap = 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); } }}
View Code

������������������������������������������������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 */;
View Code
/*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 */;
View Code

 

上一篇:Redis五种数据类型
下一篇:RabbitMQ入门

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月13日 07时35分30秒