# Jpa-sharding-jdbc **Repository Path**: pp6688/jpa-sharding-jdbc ## Basic Information - **Project Name**: Jpa-sharding-jdbc - **Description**: jpa-sharding-jdbc - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-08-30 - **Last Updated**: 2022-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Jpa-sharding-jdbc Sharding-jdbc ## 准备工作 * 6个mysql数据库 * master1 => slave1,slave2 * master2 => slave3,slave4 * 一个表 * c_order ### DDL * master1 * slave1 * slave2 * master2 * slave3 * slave4 ```sql CREATE TABLE `c_order` ( `id` BIGINT ( 20 ) not null auto_increment, `is_del` bit ( 1 ) not null default 0 comment '是否被删除', `user_id` int(11) not null comment '用户id', `company_id` int(11) not null comment '公司id', `publish_user_id` int(11) not null comment '公司id', `position_id` int(11) not null comment '职位id', `resume_type` int(2) not null default 0 comment '简历类型:0附件 1在线', `status` VARCHAR ( 256 ) NOT NULL COMMENT '投递状态 投递状态 WAIT-待处理 AUTO_FILTER-⾃动过滤 PREPARE_CONTACT-待沟通 REFUSE-拒绝 ARRANGE_INTERVIEW-通知⾯试', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '处理时间', PRIMARY KEY ( `id` ), KEY `index_userId_positionId` ( `user_id`, `position_id` ), KEY `idx_userId_operateTime` ( `user_id`, `update_time` ) ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4; ``` ### 引入sharding-jdbc ### 导入核心pom #### parent ```xml 8 8 UTF-8 4.1.0 2.2.5.RELEASE org.springframework.boot spring-boot-starter-jdbc ${springboot.version} org.springframework.boot spring-boot-starter-data-jpa ${springboot.version} org.springframework.boot spring-boot-starter-test ${springboot.version} test mysql mysql-connector-java 5.1.48 org.apache.shardingsphere sharding-jdbc-spring-boot-starter ${shardingsphere.version} org.apache.maven.plugins maven-compiler-plugin 8 8 8 8 3.8.1 ``` #### module ```xml org.springframework.boot spring-boot-starter-jdbc org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-test test mysql mysql-connector-java org.apache.shardingsphere sharding-transaction-xa-core 4.0.0-RC2 org.apache.shardingsphere sharding-jdbc-spring-boot-starter ``` ## 实现步骤 * 准备6个库 * 执行TestMasterSlave.testAdd * 执行TestMasterSlave.testSearch * 执行前,手动模拟master => slave数据,本地没有搭建主从环境(简化,不是本次关注的重点)