分库分表功能标准化代码后提交
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…
Reference in New Issue