|
@@ -0,0 +1,68 @@
|
|
|
+package com.customer.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.customer.config.DynamicDataSource;
|
|
|
+import com.customer.config.GenConfig;
|
|
|
+import com.customer.mapper.DataSourceMapper;
|
|
|
+import com.customer.pojo.Customer;
|
|
|
+import com.customer.pojo.DataSource;
|
|
|
+import com.customer.service.IDataSourceService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class DataSourceServiceImpl extends ServiceImpl<DataSourceMapper, DataSource> implements IDataSourceService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private DataSourceMapper dataSourceMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DynamicDataSource dynamicDataSource;
|
|
|
+
|
|
|
+ // 动态注入数据库信息
|
|
|
+ @Value("${spring.datasource.dynamic.datasource.master.url}")
|
|
|
+ private String url;
|
|
|
+ @Value("${spring.datasource.dynamic.datasource.master.username}")
|
|
|
+ private String username;
|
|
|
+ @Value("${spring.datasource.dynamic.datasource.master.password}")
|
|
|
+ private String password;
|
|
|
+ @Value("${spring.datasource.dynamic.datasource.master.driver-class-name}")
|
|
|
+ private String driverClassName;
|
|
|
+ @Value("${spring.datasource.dynamic.datasource.master.type}")
|
|
|
+ private String dataType;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int selectDatabaseExist(String databaseIp, String databaseName, Long portNumber) {
|
|
|
+ return dataSourceMapper.selectDatabaseExist(databaseIp,databaseName,portNumber);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public DataSource mainDataSource(Long id) throws Exception{
|
|
|
+ GenConfig genConfig = new GenConfig();
|
|
|
+ genConfig.setUrl(url);
|
|
|
+ genConfig.setDriverClassName(driverClassName);
|
|
|
+ genConfig.setUsername(username);
|
|
|
+ genConfig.setPassword(password);
|
|
|
+ genConfig.setDbtype(dataType);
|
|
|
+ //切换数据源之前先清空
|
|
|
+ DynamicDataSource.clearDataSource();
|
|
|
+ //切换数据源
|
|
|
+ dynamicDataSource.changeDataSource(genConfig);
|
|
|
+ System.err.println(dataSourceMapper.selectById(id));
|
|
|
+ return dataSourceMapper.selectById(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void changeDataSource(GenConfig genConfig) throws Exception {
|
|
|
+ //切换数据源之前先清空
|
|
|
+ DynamicDataSource.clearDataSource();
|
|
|
+ //切换数据源
|
|
|
+ dynamicDataSource.changeDataSource(genConfig);
|
|
|
+ System.err.println("当前数据源:" + dynamicDataSource.getConnection());
|
|
|
+
|
|
|
+ }
|
|
|
+}
|