当前位置: 首页 > 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/822572/

相关文章:

  • 企业公众号以及网站建设iapp网站做软件
  • 体育健身网站建设北京龙鼎网站建设公司
  • 泉州网站建设公司推荐松山湖短视频seo排名
  • 网站分类目录大全wordpress菜单设置中文
  • 简单网站 快速建设网络服务器功能概述
  • 织梦网站程序安装ps做网站显示内容参考
  • 做个网站要多久做网站网站是什么案件
  • 九江市住房和城乡建设局网站wordpress 网页加速
  • 快速模仿一个网站注册公司费用及流程
  • 东莞网站建设服务商福州市建设工程招投标信息网
  • 丝网外贸做哪些网站中等职业学校示范建设专题网站
  • 常州网站建设乛薇国外优秀电商设计网站
  • 家政服务网站源码郑州区块链数字钱包网站开发公司
  • 网站建设与熊掌号未来的关系图书翻页的动画 做网站启动用
  • 清远建设网站网站维护中是不是关闭网站了
  • 三明市建设局网站官网视觉asp网站源码
  • 做外贸建网站需要推广吗东莞商城网站推广建设
  • 网站怎么自己编辑模块关键词排名优化价格
  • 网站建设公司 待遇美橙网站产品详情
  • 小网站链接怎么找长沙百度开户
  • wordpress如何启用全站ssl迅捷在线图片编辑
  • 网站写手怎么做西安抖音seo
  • 个人怎么进行网站建设白名单查询网站
  • 潍坊网站建设SEO优化熊掌号一键生成动漫视频的软件
  • 利用公共dns做网站解析遵义网帮你
  • 外国网站手机dns网站前台的模块
  • 做变形记图网站装修设计咨询公司
  • 涪陵做网站多网站后台问题
  • 海淀网站设计公司博敏 网站开发
  • 郑州企业网站优化排名南宁网站制作公