持久层
# 实体类
# GroupDO
@Data
@TableName("t_group")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GroupDO extends BaseDO {
/**
* id
*/
private Long id;
/**
* 分组标识
*/
private String gid;
/**
* 分组名称
*/
private String name;
/**
* 创建分组用户名
*/
private String username;
/**
* 分组排序
*/
private Integer sortOrder;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# ShortLinkGroupSaveReqDTO
@Data
public class ShortLinkGroupSaveReqDTO {
/**
* 分组名
*/
private String name;
}
1
2
3
4
5
6
7
2
3
4
5
6
7
# ShortLinkGroupRespDTO
@Data
public class ShortLinkGroupRespDTO {
/**
* 分组标识
*/
private String gid;
/**
* 分组名称
*/
private String name;
/**
* 分组排序
*/
private Integer sortOrder;
/**
* 分组下短链接数量
*/
private Integer shortLinkCount;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# ShortLinkGroupUpdateReqDTO
@Data
public class ShortLinkGroupUpdateReqDTO {
/**
* 分组标识
*/
private String gid;
/**
* 分组名
*/
private String name;
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# ShortLinkGroupSortReqDTO
@Data
public class ShortLinkGroupSortReqDTO {
/**
* 分组ID
*/
private String gid;
/**
* 排序
*/
private Integer sortOrder;
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 分库分表
public class GroupTableShardingTest {
public static final String SQL = "CREATE TABLE `t_group_%d`\n" +
"(\n" +
" `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',\n" +
" `gid` varchar(32) DEFAULT NULL COMMENT '分组标识',\n" +
" `name` varchar(64) DEFAULT NULL COMMENT '分组名称',\n" +
" `username` varchar(256) DEFAULT NULL COMMENT '创建分组用户名',\n" +
" `sort_order` int(3) DEFAULT NULL COMMENT '分组排序',\n" +
" `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n" +
" `update_time` datetime DEFAULT NULL COMMENT '修改时间',\n" +
" `del_flag` tinyint(1) DEFAULT NULL COMMENT '删除标识 0:未删除 1:已删除',\n" +
" PRIMARY KEY (`id`),\n" +
" UNIQUE KEY `idx_unique_username_gid` (`gid`,`username`) USING BTREE\n" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
public static void main(String[] args) {
for (int i = 0; i < 16; i++) {
System.out.printf((SQL) + "%n", i);
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20