提交 4a306535 编写于 作者: X xubo

分库分表

上级 f45952af
......@@ -4,7 +4,6 @@
package com.oujiong.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.shardingsphere.api.config.sharding.KeyGeneratorConfiguration;
import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;
......@@ -13,16 +12,9 @@ import org.apache.shardingsphere.api.config.sharding.strategy.InlineShardingStra
import org.apache.shardingsphere.api.config.sharding.strategy.StandardShardingStrategyConfiguration;
import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import javax.annotation.Resource;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.HashMap;
......@@ -34,9 +26,9 @@ import java.util.Properties;
* @Description: 连接数据库信息 包括添加插件信息
* @date 2019/8/19 下午12:31
*/
@Configuration
@ComponentScan(basePackageClasses = DalModule.class)
@MapperScan(basePackages = "com.oujiong.mapper")
//@Configuration
//@ComponentScan(basePackageClasses = DalModule.class)
//@MapperScan(basePackages = "com.oujiong.mapper")
public class DalModule {
// @Bean
......
......@@ -6,7 +6,7 @@ import javax.sql.DataSource;
public final class DataSourceUtil {
private static final String HOST = "localhost";
private static final String HOST = "47.99.203.55";
private static final int PORT = 3306;
......
package com.oujiong.controller;
import com.google.common.collect.Lists;
import com.oujiong.entity.User;
import com.oujiong.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -8,6 +9,9 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.PostConstruct;
import java.util.List;
/**
* @Description: 接口测试
......@@ -22,13 +26,27 @@ public class UserController {
private UserService userService;
/**
* @Description: 保存用户
* 模拟插入数据
*/
List<User> userList = Lists.newArrayList();
/**
* 初始化插入数据
*/
@PostConstruct
private void getData() {
userList.add(new User(1L,"小小", "女", 3));
userList.add(new User(2L,"爸爸", "男", 30));
userList.add(new User(3L,"妈妈", "女", 28));
userList.add(new User(4L,"爷爷", "男", 64));
userList.add(new User(5L,"奶奶", "女", 62));
}
/**
* @Description: 批量保存用户
*/
@PostMapping("save-user")
public Object saveUser() {
return userService.saveOne(new User("小小", "女", 3));
return userService.insertForeach(userList);
}
/**
* @Description: 获取用户列表
*/
......@@ -37,4 +55,5 @@ public class UserController {
return userService.list();
}
}
......@@ -44,7 +44,8 @@ public class User {
*/
private Integer status;
public User(String name, String sex, Integer age) {
public User(Long id,String name, String sex, Integer age) {
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
......
......@@ -16,12 +16,12 @@ import java.util.List;
public interface UserMapper {
/**
* 插入一条记录
* 批量插入
*
* @param record 实体对象
* @return 更新条目数
* @param list 插入集合
* @return 插入数量
*/
int insert(User record);
int insertForeach(List<User> list);
/**
* 获取所有用户
......
......@@ -18,9 +18,9 @@ public interface UserService {
List<User> list();
/**
* 单个 保存用户信息
* @param user
* 批量 保存用户信息
* @param userVOList
*/
String saveOne(User user);
String insertForeach(List<User> userVOList);
}
\ No newline at end of file
......@@ -28,11 +28,14 @@ public class UserServiceImpl implements UserService {
}
@Override
public String saveOne(User user) {
user.setCreateTime(new Date());
user.setUpdateTime(new Date());
user.setStatus(1);
userMapper.insert(user);
public String insertForeach(List<User> userList) {
for (User user : userList) {
user.setCreateTime(new Date());
user.setUpdateTime(new Date());
user.setStatus(0);
}
//批量插入数据
userMapper.insertForeach(userList);
return "保存成功";
}
}
server.port=8084
#指定mybatis信息
mybatis.config-location=classpath:mybatis-config.xml
#打印sql
spring.shardingsphere.props.sql.show=true
spring.shardingsphere.datasource.names=ds0,ds1
spring.shardingsphere.datasource.ds0.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.ds0.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.ds0.url=jdbc:mysql://47.99.203.55:3306/ds0?characterEncoding=utf-8
spring.shardingsphere.datasource.ds0.username=root
spring.shardingsphere.datasource.ds0.password=123456
spring.shardingsphere.datasource.ds1.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.ds1.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.ds1.url=jdbc:mysql://47.99.203.55:3306/ds1?characterEncoding=utf-8
spring.shardingsphere.datasource.ds1.username=root
spring.shardingsphere.datasource.ds1.password=123456
spring.shardingsphere.sharding.default-database-strategy.inline.sharding-column=age
spring.shardingsphere.sharding.default-database-strategy.inline.algorithm-expression=ds$->{age % 2}
spring.shardingsphere.sharding.tables.tab_user.actual-data-nodes=ds$->{0..1}.tab_user$->{0..1}
spring.shardingsphere.sharding.tables.tab_user.table-strategy.inline.sharding-column=id
spring.shardingsphere.sharding.tables.tab_user.table-strategy.inline.algorithm-expression=tab_user$->{id % 2}
......@@ -19,12 +19,15 @@
from tab_user
</select>
<insert id="insert" parameterType="com.oujiong.entity.User">
<insert id="insertForeach" parameterType="java.util.List" useGeneratedKeys="false">
insert into tab_user (id, name, sex,
age, create_time, update_time,
status)
values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP},
#{status,jdbcType=INTEGER})
age, create_time, update_time,
status)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.id,jdbcType=BIGINT}, #{item.name,jdbcType=VARCHAR}, #{item.sex,jdbcType=VARCHAR},
#{item.age,jdbcType=INTEGER}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP},
#{item.status,jdbcType=INTEGER})
</foreach>
</insert>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<package name="com.oujiong.entity"/>
</typeAliases>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册