MybatisPlus配置数据源

本文介绍如何使用MybatisPlus进行数据源配置,包括设置全局配置、配置SQLSessionFactoryBean、TransactionManager等,并展示了具体实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MybatisPlus配置数据源

MybatisPlus关键设置

引入的包为baomidou
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();

完整config配置,

@Configuration
@MapperScan(basePackages = {"com.yck.mapper"}, sqlSessionTemplateRef = "mhspSqlSessionTemplate")
public class DataSourceConfig {

		public static final String MAPPER_LOCATION_PATTERN = "classpath:mapper/*.xml";
		
		@Bean
		public DataSourceTransactionManager mhspTransactionManager (@Autowired DataSource mhspDataSource) {
			return new DataSourceTransactionManager (mhspDataSource);
		}
		
		public SqlSessionFactory mhspSqlSessionFactory (@Autowired DataSource mhspDataSource) throws Exception {
			MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
			bean.setDataSource(mhspDataSource);
			bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCATION_PATTERN));
			// 全局配置
			bean.setGlobalConfig(globalConfig);
			// 配置打印sql语句
			MybatisConfiguration configuration = new MybatisConfiguration();
			configuration.setLogImpl(StdOutImpl.class);
			return bean.getObject();
		}
		
		@Bean
		public SqlSessionTemplate mhspSqlSessionTemplate(@Qualifier("mhspSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
			return new SqlSessionTemplate(sqlSessionFactory);
		}
		
		@Bean
		public GlobalConfig globalConfig() {
				GlobalConfig conf = new GlobalConfig();
				GlobalConfig.DbConfig dbConfig = new GlobalConfig.DbConfig();
				dbConfig.setKeyGenerator(new OracleKeyGenerator());
				dbConfig.setIdType(IdType.values()[1]);
				confi.setDbConfig(dbConfig);
				return conf;
		}

}
### 配置MyBatis-Plus中的数据源 #### 一、添加依赖 为了使项目能够使用 MyBatis-Plus 及其多数据源功能,需在项目的 `pom.xml` 文件中引入必要的依赖项[^1]。 ```xml <dependencies> <!-- MyBatis Plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <!-- Druid 数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.21</version> </dependency> <!-- Spring Boot Starter JDBC (如果未包含) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> </dependencies> ``` #### 二、配置多个数据源 通过自定义配置类来注册多个数据源实例,并指定各自的数据源属性前缀。这里展示了两个不同名称的数据源配置方法[^2]。 ```java @Configuration public class DataSourceConfig { @Bean(name="dataSourcePrimary") @ConfigurationProperties(prefix = "spring.datasource.primary") public DataSource primaryDataSource(){ return DataSourceBuilder.create().build(); } @Bean(name="dataSourceSecondary") @ConfigurationProperties(prefix = "spring.datasource.secondary") public DataSource secondaryDataSource(){ return DataSourceBuilder.create().build(); } } ``` #### 三、实现动态切换逻辑 为了让应用程序能够在运行期间灵活地选择不同的数据源执行查询操作,在服务层利用注解的方式标记具体要使用的数据源[^3][^4]。 ```java @Service @DS("primary") // 默认情况下指向主库 public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override @DS("secondary") // 当调用此方法时会临时转向备选数据库 public List<User> getUsersFromBackupDatabase() { return userMapper.selectList(null); } } ``` #### 四、创建自定义注解用于标识目标数据源 可以进一步抽象化这一过程,通过定义一个新的注解并将其应用于业务逻辑层面,从而简化开发人员的操作流程。 ```java import java.lang.annotation.*; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface DS { String value() default ""; } ``` 以上就是关于如何在 MyBatis-Plus 中设置和管理多数据源的相关说明以及实践指南。希望这些信息能帮助到正在寻找解决方案的人士。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值