فهرست منبع

分库分表功能标准化代码后提交

rice666 3 سال پیش
والد
کامیت
532ad3b0ae

+ 51 - 0
ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestShardingController.java

@@ -0,0 +1,51 @@
+package org.dromara.demo.controller;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.demo.domain.ShardingOrder;
+import org.dromara.demo.mapper.ShardingOrderMapper;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/sharding")
+public class TestShardingController {
+
+    private final ShardingOrderMapper torderMapper;
+
+    @GetMapping("/page")
+    public R<Page<ShardingOrder>> page() {
+        Page<ShardingOrder> page = new Page<>();
+        page.setCurrent(3L);
+        QueryWrapper<ShardingOrder> queryWrapper = new QueryWrapper<>();
+        queryWrapper.orderByAsc("order_id");
+        torderMapper.selectPage(page,queryWrapper);
+        //List<ShardingOrder> records = page.getRecords();
+        //System.out.println(page.getTotal());
+//        for(ShardingOrder order : page.getRecords()){
+//            System.out.print(order.getTotalMoney()+" ");
+//        }
+        return R.ok(page);
+    }
+
+    @GetMapping("/insert")
+    public R<Void> insert() {
+        for(Long i = 1L; i <= 100L; i++){
+            ShardingOrder torder = new ShardingOrder();
+            torder.setUserId(i);
+            torder.setTotalMoney(100 + Integer.parseInt(i+""));
+            torderMapper.insert(torder);
+        }
+
+        return R.ok("分库分表数据批量插入成功!");
+
+    }
+
+}

+ 1 - 1
ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/TOrder.java → ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/ShardingOrder.java

@@ -5,7 +5,7 @@ import lombok.Data;
 
 @TableName("t_order")
 @Data
-public class TOrder {
+public class ShardingOrder {
 
 
     private Long orderId;

+ 1 - 1
ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/TOrderItem.java → ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/domain/ShardingOrderItem.java

@@ -5,7 +5,7 @@ import lombok.Data;
 
 @TableName("t_order_item")
 @Data
-public class TOrderItem {
+public class ShardingOrderItem {
 
     private Long orderItemId;
 

+ 14 - 0
ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/mapper/ShardingOrderItemMapper.java

@@ -0,0 +1,14 @@
+package org.dromara.demo.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.dromara.demo.domain.ShardingOrderItem;
+
+@Mapper
+@DS("sharding")
+public interface ShardingOrderItemMapper extends BaseMapper<ShardingOrderItem> {
+
+
+}

+ 15 - 0
ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/mapper/ShardingOrderMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.demo.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.dromara.demo.domain.ShardingOrder;
+
+
+@Mapper
+@DS("sharding")
+public interface ShardingOrderMapper extends BaseMapper<ShardingOrder> {
+
+
+}

+ 0 - 12
ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TOrderItemMapper.java

@@ -1,12 +0,0 @@
-package org.dromara.demo.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-import org.apache.ibatis.annotations.Mapper;
-import org.dromara.demo.domain.TOrderItem;
-
-@Mapper
-public interface TOrderItemMapper extends BaseMapper<TOrderItem> {
-
-
-}

+ 0 - 12
ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TOrderMapper.java

@@ -1,12 +0,0 @@
-package org.dromara.demo.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-import org.apache.ibatis.annotations.Mapper;
-import org.dromara.demo.domain.TOrder;
-
-@Mapper
-public interface TOrderMapper extends BaseMapper<TOrder> {
-
-
-}

+ 7 - 8
ruoyi-example/ruoyi-demo/src/main/resources/application.yml

@@ -39,19 +39,18 @@ spring:
       # 设置默认的数据源或者数据源组,默认值即为 master
       primary: master
       datasource:
+#     主库数据源
         master:
-          type: com.zaxxer.hikari.HikariDataSource
+          type: ${spring.datasource.type}
+          driver-class-name: com.mysql.cj.jdbc.Driver
+          url: ${datasource.system-master.url}
+          username: ${datasource.system-master.username}
+          password: ${datasource.system-master.password}
+        sharding:
           driver-class-name: com.mysql.cj.jdbc.Driver
           url: jdbc:mysql://192.168.0.60:3307/data-center_db?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
           username: root
           password: root
-        # 主库数据源
-#        master:
-#          type: ${spring.datasource.type}
-#          driver-class-name: com.mysql.cj.jdbc.Driver
-#          url: ${datasource.system-master.url}
-#          username: ${datasource.system-master.username}
-#          password: ${datasource.system-master.password}
 #        oracle:
 #          type: ${spring.datasource.type}
 #          driverClassName: oracle.jdbc.OracleDriver

+ 1 - 1
ruoyi-example/ruoyi-demo/src/main/resources/mapper/demo/TOrderMapper.xml → ruoyi-example/ruoyi-demo/src/main/resources/mapper/demo/ShardingOrderItemMapper.xml

@@ -2,6 +2,6 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.demo.mapper.TOrderMapper">
+<mapper namespace="org.dromara.demo.mapper.ShardingOrderItemMapper">
 
 </mapper>

+ 1 - 1
ruoyi-example/ruoyi-demo/src/main/resources/mapper/demo/TOrderItemMapper.xml → ruoyi-example/ruoyi-demo/src/main/resources/mapper/demo/ShardingOrderMapper.xml

@@ -2,6 +2,6 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.demo.mapper.TOrderItemMapper">
+<mapper namespace="org.dromara.demo.mapper.ShardingOrderMapper">
 
 </mapper>

+ 8 - 18
ruoyi-example/ruoyi-demo/src/test/java/org/dromara/demo/TOrderTest.java

@@ -3,8 +3,8 @@ package org.dromara.demo;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
-import org.dromara.demo.domain.TOrder;
-import org.dromara.demo.mapper.TOrderMapper;
+import org.dromara.demo.domain.ShardingOrder;
+import org.dromara.demo.mapper.ShardingOrderMapper;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -13,10 +13,8 @@ import org.springframework.boot.test.context.SpringBootTest;
 class TOrderTest {
 
     @Autowired
-    TOrderMapper torderMapper;
+    ShardingOrderMapper torderMapper;
 
-    //@Autowired
-    //TUserMapper userMapper;
 
     @Test
     void find() {
@@ -25,13 +23,13 @@ class TOrderTest {
 
     @Test
     void page() {
-        Page<TOrder> page = new Page<>();
+        Page<ShardingOrder> page = new Page<>();
         page.setCurrent(3L);
-        QueryWrapper<TOrder> queryWrapper = new QueryWrapper<>();
+        QueryWrapper<ShardingOrder> queryWrapper = new QueryWrapper<>();
         queryWrapper.orderByAsc("order_id");
         torderMapper.selectPage(page,queryWrapper);
         System.out.println(page.getTotal());
-        for(TOrder order : page.getRecords()){
+        for(ShardingOrder order : page.getRecords()){
             System.out.print(order.getTotalMoney()+" ");
         }
     }
@@ -39,21 +37,13 @@ class TOrderTest {
     @Test
     void insert() {
         for(Long i = 1L; i <= 100L; i++){
-            TOrder torder = new TOrder();
+            ShardingOrder torder = new ShardingOrder();
             torder.setUserId(i);
             torder.setTotalMoney(100 + Integer.parseInt(i+""));
             torderMapper.insert(torder);
         }
 
     }
-    @Test
-    void insertUser() {
-        /*User user = new User();
-        user.setId(1L);
-        user.setUserName("abc");
-        user.setAge(18);
-        user.setCreateTime(new Date());
-        userMapper.insert(user);*/
-    }
+
 
 }