分库分表功能标准化代码后提交
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")
|
@TableName("t_order")
|
||||||
@Data
|
@Data
|
||||||
public class TOrder {
|
public class ShardingOrder {
|
||||||
|
|
||||||
|
|
||||||
private Long orderId;
|
private Long orderId;
|
||||||
|
|
@ -5,7 +5,7 @@ import lombok.Data;
|
||||||
|
|
||||||
@TableName("t_order_item")
|
@TableName("t_order_item")
|
||||||
@Data
|
@Data
|
||||||
public class TOrderItem {
|
public class ShardingOrderItem {
|
||||||
|
|
||||||
private Long orderItemId;
|
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
|
# 设置默认的数据源或者数据源组,默认值即为 master
|
||||||
primary: master
|
primary: master
|
||||||
datasource:
|
datasource:
|
||||||
|
# 主库数据源
|
||||||
master:
|
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
|
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
|
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
|
username: root
|
||||||
password: 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:
|
# oracle:
|
||||||
# type: ${spring.datasource.type}
|
# type: ${spring.datasource.type}
|
||||||
# driverClassName: oracle.jdbc.OracleDriver
|
# driverClassName: oracle.jdbc.OracleDriver
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,6 @@
|
||||||
<!DOCTYPE mapper
|
<!DOCTYPE mapper
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.dromara.demo.mapper.TOrderMapper">
|
<mapper namespace="org.dromara.demo.mapper.ShardingOrderItemMapper">
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -2,6 +2,6 @@
|
||||||
<!DOCTYPE mapper
|
<!DOCTYPE mapper
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.dromara.demo.mapper.TOrderItemMapper">
|
<mapper namespace="org.dromara.demo.mapper.ShardingOrderMapper">
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -3,8 +3,8 @@ package org.dromara.demo;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
|
||||||
import org.dromara.demo.domain.TOrder;
|
import org.dromara.demo.domain.ShardingOrder;
|
||||||
import org.dromara.demo.mapper.TOrderMapper;
|
import org.dromara.demo.mapper.ShardingOrderMapper;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
@ -13,10 +13,8 @@ import org.springframework.boot.test.context.SpringBootTest;
|
||||||
class TOrderTest {
|
class TOrderTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
TOrderMapper torderMapper;
|
ShardingOrderMapper torderMapper;
|
||||||
|
|
||||||
//@Autowired
|
|
||||||
//TUserMapper userMapper;
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void find() {
|
void find() {
|
||||||
|
|
@ -25,13 +23,13 @@ class TOrderTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void page() {
|
void page() {
|
||||||
Page<TOrder> page = new Page<>();
|
Page<ShardingOrder> page = new Page<>();
|
||||||
page.setCurrent(3L);
|
page.setCurrent(3L);
|
||||||
QueryWrapper<TOrder> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<ShardingOrder> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.orderByAsc("order_id");
|
queryWrapper.orderByAsc("order_id");
|
||||||
torderMapper.selectPage(page,queryWrapper);
|
torderMapper.selectPage(page,queryWrapper);
|
||||||
System.out.println(page.getTotal());
|
System.out.println(page.getTotal());
|
||||||
for(TOrder order : page.getRecords()){
|
for(ShardingOrder order : page.getRecords()){
|
||||||
System.out.print(order.getTotalMoney()+" ");
|
System.out.print(order.getTotalMoney()+" ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -39,21 +37,13 @@ class TOrderTest {
|
||||||
@Test
|
@Test
|
||||||
void insert() {
|
void insert() {
|
||||||
for(Long i = 1L; i <= 100L; i++){
|
for(Long i = 1L; i <= 100L; i++){
|
||||||
TOrder torder = new TOrder();
|
ShardingOrder torder = new ShardingOrder();
|
||||||
torder.setUserId(i);
|
torder.setUserId(i);
|
||||||
torder.setTotalMoney(100 + Integer.parseInt(i+""));
|
torder.setTotalMoney(100 + Integer.parseInt(i+""));
|
||||||
torderMapper.insert(torder);
|
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