ShardingSphere定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。
代码实现:
以用户表为例, 我们需要将它分成2个库,每个库三张表,根据id字段取模确定最终数据的位置
ds0:
user_0
user_1
user_2
ds1:
user_0
user_1
user_2
ds0,ds1两个数据库的三张表的逻辑表都为user表,可以使用以下脚本建表:
CREATE TABLE `user_0` (
`id` bigint(11) NOT NULL,
`name` varchar(20) COLLATE utf8_bin DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
修改pom.xml文件
mybatis-plus配置信息类:
用户实体类:
用户dao接口类:
springboot启动类:
测试类userController:
package com.mscloudmesh.sharding.springbootshardingsphere.controller;
import com.mscloudmesh.sharding.springbootshardingsphere.model.User;
import com.mscloudmesh.sharding.springbootshardingsphere.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/add")
public User add() {
User user = new User();
user.setName("test");
user.setAge(30);
userService.save(user);
return user;
}
}
请求 http://localhost:8761/add
控制台输出: