diff --git a/examples/sharding-jdbc-example/pom.xml b/examples/sharding-jdbc-example/pom.xml index 72ac4aa..9e19232 100644 --- a/examples/sharding-jdbc-example/pom.xml +++ b/examples/sharding-jdbc-example/pom.xml @@ -1,25 +1,41 @@ - - 4.0.0 + + 4.0.0 + + com.chinaunicom.ebtp + mall-ebtp-cloud-parent + 0.0.1 + - com.chinaunicom.mall.ebtp.cloud - sharding-jdbc-example - 0.0.1-SNAPSHOT - jar + com.chinaunicom.mall.ebtp.cloud + sharding-jdbc-example + 0.0.1-SNAPSHOT + jar - sharding-jdbc-example - http://maven.apache.org + sharding-jdbc-example - - UTF-8 - + + + com.chinaunicom.ebtp + mall-ebtp-cloud-jpa-starter + + + mysql + mysql-connector-java + + + org.apache.shardingsphere + sharding-jdbc-spring-boot-starter + + - - - junit - junit - 3.8.1 - test - - + + + + org.springframework.boot + spring-boot-maven-plugin + + + diff --git a/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/App.java b/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/App.java deleted file mode 100644 index f2fa58d..0000000 --- a/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/App.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example; - -/** - * Hello world! - * - */ -public class App -{ - public static void main( String[] args ) - { - System.out.println( "Hello World!" ); - } -} diff --git a/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/ShardingJdbcExampleApplication.java b/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/ShardingJdbcExampleApplication.java new file mode 100644 index 0000000..00f6a28 --- /dev/null +++ b/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/ShardingJdbcExampleApplication.java @@ -0,0 +1,11 @@ +package com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class ShardingJdbcExampleApplication { + public static void main(String[] args) { + SpringApplication.run(ShardingJdbcExampleApplication.class, args); + } +} diff --git a/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/mapper/DemoMapper.java b/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/mapper/DemoMapper.java new file mode 100644 index 0000000..f365cd4 --- /dev/null +++ b/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/mapper/DemoMapper.java @@ -0,0 +1,11 @@ +package com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example.mapper; + +import org.apache.ibatis.annotations.Mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example.model.Demo; + +@Mapper +public interface DemoMapper extends BaseMapper { + +} diff --git a/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/mapper/UndoLogMapper.java b/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/mapper/UndoLogMapper.java new file mode 100644 index 0000000..a2023e7 --- /dev/null +++ b/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/mapper/UndoLogMapper.java @@ -0,0 +1,11 @@ +package com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example.mapper; + +import org.apache.ibatis.annotations.Mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example.model.UndoLog; + +@Mapper +public interface UndoLogMapper extends BaseMapper { + +} diff --git a/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/model/Demo.java b/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/model/Demo.java new file mode 100644 index 0000000..8655d92 --- /dev/null +++ b/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/model/Demo.java @@ -0,0 +1,28 @@ +package com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example.model; + +import java.sql.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class Demo { + + private Long id; + private String col1; + private String col2; + + /** 参数自动注入 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + private Date createTime; + private String updateBy; + private Date updateTime; + private int delFlag; + +} diff --git a/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/model/UndoLog.java b/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/model/UndoLog.java new file mode 100644 index 0000000..eb6cd66 --- /dev/null +++ b/examples/sharding-jdbc-example/src/main/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/model/UndoLog.java @@ -0,0 +1,21 @@ +package com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example.model; + +import java.util.Date; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class UndoLog { + + private Long id; + private Long branchId; + private String xid; + private String context; + private String rollbackInfo; + private Integer logStatus; + private Date logCreated; + private Date logModified; + +} diff --git a/examples/sharding-jdbc-example/src/main/resources/application-shardingJdbc.yml b/examples/sharding-jdbc-example/src/main/resources/application-shardingJdbc.yml new file mode 100644 index 0000000..0ad17b2 --- /dev/null +++ b/examples/sharding-jdbc-example/src/main/resources/application-shardingJdbc.yml @@ -0,0 +1,50 @@ +spring: + shardingsphere: + datasource: + names: ds0, ds0slave1, ds0slave2, ds1 + ds0: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://125.32.114.204:13306/ebtp-cloud?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + username: mall3-ebtp-dev + password: mall3-ebtp-dev + + # 从库 + ds0slave1: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://125.32.114.204:13306/ebtp-cloud?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + username: mall3-ebtp-dev + password: mall3-ebtp-dev + + ds0slave2: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://125.32.114.204:13306/ebtp-cloud?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + username: mall3-ebtp-dev + password: mall3-ebtp-dev + + ds1: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://125.32.114.204:13306/ebtp_mall_evaluation?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + username: mall3-ebtp-dev + password: mall3-ebtp-dev + + # 分库配置 + sharding: + tables: + demo: + actual-data-nodes: ds0.demo + undo_log: + actual-data-nodes: ds1.undo_log + + #读写分离 + master-slave-rules: + ds0: + master-data-source-name: ds0 + slave-data-source-names: + - ds0slave1 + - ds0slave2 + + \ No newline at end of file diff --git a/examples/sharding-jdbc-example/src/main/resources/application.yml b/examples/sharding-jdbc-example/src/main/resources/application.yml new file mode 100644 index 0000000..c2bd823 --- /dev/null +++ b/examples/sharding-jdbc-example/src/main/resources/application.yml @@ -0,0 +1,10 @@ +spring: + profiles: + active: shardingJdbc + application: + name: mall-ebtp-cloud-demo + +logging: + level: + root: info + \ No newline at end of file diff --git a/examples/sharding-jdbc-example/src/test/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/AppTest.java b/examples/sharding-jdbc-example/src/test/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/AppTest.java deleted file mode 100644 index 9ecb54c..0000000 --- a/examples/sharding-jdbc-example/src/test/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/AppTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit test for simple App. - */ -public class AppTest - extends TestCase -{ - /** - * Create the test case - * - * @param testName name of the test case - */ - public AppTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( AppTest.class ); - } - - /** - * Rigourous Test :-) - */ - public void testApp() - { - assertTrue( true ); - } -} diff --git a/examples/sharding-jdbc-example/src/test/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/ShardingJdbcExampleTest.java b/examples/sharding-jdbc-example/src/test/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/ShardingJdbcExampleTest.java new file mode 100644 index 0000000..1f88f18 --- /dev/null +++ b/examples/sharding-jdbc-example/src/test/java/com/chinaunicom/mall/ebtp/cloud/shardingjdbc/example/ShardingJdbcExampleTest.java @@ -0,0 +1,52 @@ +package com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example; + +import java.util.Date; +import java.util.List; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example.mapper.DemoMapper; +import com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example.mapper.UndoLogMapper; +import com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example.model.Demo; +import com.chinaunicom.mall.ebtp.cloud.shardingjdbc.example.model.UndoLog; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ShardingJdbcExampleApplication.class) +public class ShardingJdbcExampleTest { + + private @Autowired DemoMapper demoMapper; + private @Autowired UndoLogMapper undoLogMapper; + + @Test + public void testInsertDemo() { + Demo demo = new Demo().setCol1("123"); + demoMapper.insert(demo); + } + + @Test + public void testInsertUndolog() { + UndoLog undolog = new UndoLog(); + undolog.setBranchId(100L); + undolog.setContext("23424"); + undolog.setLogCreated(new Date()); + undolog.setLogModified(new Date()); + undolog.setLogStatus(1); + undolog.setRollbackInfo("234243"); + undolog.setXid("2342"); + + undoLogMapper.insert(undolog); + } + + @Test + public void testSelectFromDemo() { + List list = demoMapper.selectList(new QueryWrapper().select()); + + System.out.println(list.size()); + } + +}