当前位置: 首页 > news >正文

增城区建设局网站推广引流网站

增城区建设局网站,推广引流网站,上海人才网官网,成都的网站设计公司价格需求 springboot设计开发一个系统,在这个系统的数据库表中存放着2000个数据库实例,有MySQL、Oracle、sql server3种数据库类型,用户可以在页面上选择不同的实例,连接这些实例上的数据库,来执行业务sql 实现 Service…

需求

springboot设计开发一个系统,在这个系统的数据库表中存放着2000个数据库实例,有MySQL、Oracle、sql server3种数据库类型,用户可以在页面上选择不同的实例,连接这些实例上的数据库,来执行业务sql

实现

@Service
public class DatabaseService {@Autowiredprivate DynamicDataSource dynamicDataSource;@Autowiredprivate JdbcTemplate jdbcTemplate;public void executeSqlOnDatabase(int instanceId, String sql) {// 根据实例ID获取数据库实例信息DatabaseInstance instance = databaseInstanceService.getInstanceById(instanceId);if (instance == null) {throw new IllegalArgumentException("Invalid database instance ID: " + instanceId);}// 构建数据源配置HikariConfig config = new HikariConfig();config.setJdbcUrl(generateJdbcUrl(instance));config.setUsername(instance.getUsername());config.setPassword(instance.getPassword());config.setDriverClassName(getDriverClassName(instance.getDatabaseType()));// 创建数据源HikariDataSource dataSource = new HikariDataSource(config);// 动态添加数据源String dataSourceKey = instance.getIp() + ":" + instance.getPort();dynamicDataSource.addTargetDataSource(dataSourceKey, dataSource);try {// 切换到新的数据源DynamicDataSourceContextHolder.setDataSourceKey(dataSourceKey);// 执行SQLjdbcTemplate.execute(sql);} catch (DataAccessException e) {// 处理异常e.printStackTrace();} finally {// 操作完成后,切换回默认数据源或清理当前数据源DynamicDataSourceContextHolder.clearDataSourceKey();dynamicDataSource.removeTargetDataSource(dataSourceKey);// 关闭数据源dataSource.close();}}private String generateJdbcUrl(DatabaseInstance instance) {String databaseType = instance.getDatabaseType();String ip = instance.getIp();int port = instance.getPort();String databaseName = instance.getDatabaseName();switch (databaseType.toLowerCase()) {case "mysql":return "jdbc:mysql://" + ip + ":" + port + "/" + databaseName;case "oracle":return "jdbc:oracle:thin:@" + ip + ":" + port + ":" + databaseName;case "sqlserver":return "jdbc:sqlserver://" + ip + ":" + port + ";databaseName=" + databaseName;default:throw new IllegalArgumentException("Unsupported database type: " + databaseType);}}private String getDriverClassName(String databaseType) {switch (databaseType.toLowerCase()) {case "mysql":return "com.mysql.cj.jdbc.Driver";case "oracle":return "oracle.jdbc.driver.OracleDriver";case "sqlserver":return "com.microsoft.sqlserver.jdbc.SQLServerDriver";default:throw new IllegalArgumentException("Unsupported database type: " + databaseType);}}
}
public class DynamicDataSourceContextHolder {private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();public static void setDataSourceKey(String key) {CONTEXT_HOLDER.set(key);}public static String getDataSourceKey() {return CONTEXT_HOLDER.get();}public static void clearDataSourceKey() {CONTEXT_HOLDER.remove();}
}
http://www.yayakq.cn/news/570854/

相关文章:

  • 禹城建设局网站网站已经克隆好了 怎么做仿站
  • 汕头网站建设stqhcx微信小程序商城需要多少钱
  • 做网站设计怎么样可信赖的购物网站建设
  • 家居企业网站建设效果驻马店专业网站建设
  • 东营建网站代理公司网站备案
  • 响应式网站设计公司wordpress 菜单位置
  • 做源码网站赚钱吗ks3c ks4c做网站
  • 福州商城网站建设网站建设公司工资设置
  • 用织梦做网站后面可以改吗杭州西湖区网站建设
  • 个人网站建设方案书怎么写山东网站建设电话
  • 珠海酒店网站建设公司做企业网站建设的公司
  • 广西建设厅网站绿色建筑标识网站开发的数据库
  • 怎么制作网站横幅湖南建设网站官网
  • php 茶叶网站建设湛江赤坎孵化器网站建设招聘
  • 做网站点击挣钱不?关于建设教体局网站的申请
  • 怀柔手机网站建设做网站直接从网上的icon吗
  • 做预算查价格的网站是哪个烟台网站建设策划方案
  • 广州网站运营珍珠设计制作培训
  • 网站后台更新怎么做东莞网站建设是什么意思
  • 网站设计的用途成都做整站优化
  • 大丰做网站建设的公司php英文商城网站建设
  • 建设部网站监理资质换证酒店推广平台有哪些
  • 百度 门户网站郑州做网站建设哪家好
  • 网站建设推广语网站开发的调研
  • 网站网页设计教程wordpress mx主题
  • 无锡网站改版如何成功进行网络营销
  • WordPress仿站培训百度下载安装2021
  • 湖南网络公司网站建设轻骑铃木摩托车官网
  • 惠州东莞网站建设wordpress 新建模版
  • 建设好的网站怎么发布出入长沙今天最新通知