分库操作(无事务)

Product库:

@Configuration
@MapperScan(basePackages = ProductConfig.PACKAGE, sqlSessionFactoryRef = "productSqlSessionFactory")
public class ProductConfig {
    // 精确到 cluster 目录,以便跟其他数据源隔离
    static final String PACKAGE = "com.yangshan.exportData.mapper.product";
    static final String MAPPER_LOCATION = "classpath:mapper/product/*.xml";

    @Value("${product.datasource.url}")
    private String url;

    @Value("${product.datasource.username}")
    private String user;

    @Value("${product.datasource.password}")
    private String password;

    @Value("${product.datasource.driverClassName}")
    private String driverClass;

    @Bean(name = "productDataSource")
    public DataSource productDataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClass);
        dataSource.setUrl(url);
        dataSource.setUsername(user);
        dataSource.setPassword(password);
        return dataSource;
    }

    @Bean(name = "productTransactionManager")
    public DataSourceTransactionManager productTransactionManager() {
        return new DataSourceTransactionManager(productDataSource());
    }

    @Bean(name = "productSqlSessionFactory")
    public SqlSessionFactory productSqlSessionFactory(@Qualifier("productDataSource") DataSource productDataSource) throws Exception {
        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(productDataSource);
        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(ProductConfig.MAPPER_LOCATION));
        return sessionFactory.getObject();
    }
}

Order库:

@Configuration
@MapperScan(basePackages = OrderConfig.PACKAGE, sqlSessionFactoryRef = "orderSqlSessionFactory")
public class OrderConfig {
    // 精确到 cluster 目录,以便跟其他数据源隔离
    static final String PACKAGE = "com.yangshan.exportData.mapper.order";
    static final String MAPPER_LOCATION = "classpath:mapper/order/*.xml";

    @Value("${order.datasource.url}")
    private String url;
    @Value("${order.datasource.username}")
    private String user;
    @Value("${order.datasource.password}")
    private String password;
    @Value("${order.datasource.driverClassName}")
    private String driverClass;

    @Bean(name = "orderDataSource")
    public DataSource orderDataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClass);
        dataSource.setUrl(url);
        dataSource.setUsername(user);
        dataSource.setPassword(password);
        return dataSource;
    }

    @Bean(name = "orderTransactionManager")
    public DataSourceTransactionManager orderTransactionManager() {
        return new DataSourceTransactionManager(orderDataSource());
    }

    @Bean(name = "orderSqlSessionFactory")
    public SqlSessionFactory orderSqlSessionFactory(@Qualifier("orderDataSource") DataSource orderDataSource, MybatisProperties mybatisProperties) throws Exception {
        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(orderDataSource);
        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(OrderConfig.MAPPER_LOCATION));
        sessionFactory.setConfiguration(mybatisProperties.getConfiguration());
        return sessionFactory.getObject();
    }
}

等等。。。

posted @ 2019-12-26 10:35  yifanSJ  阅读(238)  评论(0编辑  收藏  举报