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

2.X
rice666 2 years ago
parent ed9c56d7ac
commit 532ad3b0ae

@ -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("分库分表数据批量插入成功!");
}
}

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

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

@ -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> {
}

@ -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> {
}

@ -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> {
}

@ -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> {
}

@ -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

@ -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>

@ -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>

@ -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);*/
}
}

Loading…
Cancel
Save