SpringBoot + Mybatis + Druid + PageHelper 实现多数据源并分页

编写完之后,启动程序,在浏览器输入:http://127.0.0.1:8084/druid/index.html ,然后输入设置的用户名和密码,便可以访问Web界面了。

多数据源配置

======

在进行多数据源配置之前,先分别在springBoot和springBoot_test的mysql数据库中执行如下脚本。

– springBoot库的脚本

CREATE TABLE t_user (

id int(11) NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,

name varchar(10) DEFAULT NULL COMMENT ‘姓名’,

age int(2) DEFAULT NULL COMMENT ‘年龄’,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8

– springBoot_test库的脚本

CREATE TABLE t_student (

id int(11) NOT NULL AUTO_INCREMENT,

name varchar(16) DEFAULT NULL,

age int(11) DEFAULT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8

注:为了偷懒,将两张表的结构弄成一样了!不过不影响测试!

在application.properties中已经配置这两个数据源的信息,上面已经贴出了一次配置,这里就不再贴了。

这里重点说下 第二个数据源的配置。和上面的MasterDataSourceConfig.java差不多,区别在与没有使用@Primary 注解和名称不同而已。需要注意的是MasterDataSourceConfig.java对package和mapper的扫描是精确到目录的,这里的第二个数据源也是如此。

那么代码如下:

@Configuration

@MapperScan(basePackages = ClusterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = “clusterSqlSessionFactory”)

public class ClusterDataSourceConfig {

static final String PACKAGE = “com.pancm.dao.cluster”;

static final String MAPPER_LOCATION = “classpath:mapper/cluster/*.xml”;

@Value(“${cluster.datasource.url}”)

private String url;

@Value(“${cluster.datasource.username}”)

private String username;

@Value(“${cluster.datasource.password}”)

private String password;

@Value(“${cluster.datasource.driverClassName}”)

private String driverClass;

// 和MasterDataSourceConfig一样,这里略

@Bean(name = “clusterDataSource”)

public DataSource clusterDataSource() {

DruidDataSource dataSource = new DruidDataSource();

dataSource.setUrl(url);

dataSource.setUsername(username);

dataSource.setPassword(password);

dataSource.setDriverClassName(driverClass);

// 和MasterDataSourceConfig一样,这里略 …

return dataSource;

}

@Bean(name = “clusterTransactionManager”)

public DataSourceTransactionManager clusterTransactionManager() {

return new DataSourceTransactionManager(clusterDataSource());

}

@Bean(name = “clusterSqlSessionFactory”)

public SqlSessionFactory clusterSqlSessionFactory(@Qualifier(“clusterDataSource”) DataSource clusterDataSource)

throws Exception {

final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();

sessionFactory.setDataSource(clusterDataSource);

sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(ClusterDataSourceConfig.MAPPER_LOCATION));

return sessionFactory.getObject();

}

}

成功写完配置之后

  • 12
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值