当前位置: 首页 > 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.tj-hxxt.cn/news/125793.html

相关文章:

  • 专业的公司网站制作服务seo搜索优化待遇
  • dw网站引导页怎么做seo l
  • 大连做网站比较好的公司网络运营和网络营销的区别
  • 开平网站建设做网站设计的公司
  • 企业网盘方案湖南正规seo公司
  • 丽江市企业网站影响关键词优化的因素
  • 校园网站建设测试目的黄页推广平台有哪些
  • 商城网站模板图线上推广营销
  • wordpress 域名绑定后 手机seo网站关键词快速排名
  • 2018做网站用什么开发重庆快速排名优化
  • 河南做网站需要多少钱怎么网站排名seo
  • 专业营销型网站建设自己做网站如何赚钱
  • 公司做网站需要准备什么东西市场调研报告800字
  • dw做新闻网站免费推广软件哪个好
  • 怎么把网页里的视频提取出来张家港seo建站
  • seo查询什么意思seo一个月工资一般多少
  • wordpress如何修改栏目的模板陕西网站seo
  • 商务网站的主要存在形式合肥seo排名扣费
  • 传奇私服网站花生壳怎么做关键词排名怎么做上去
  • win7系统做asp网站十大职业资格培训机构
  • 手机做网站教程seo优化及推广如何运营
  • 青浦网站建设推广优化关键词具体要怎么做
  • 南阳企业网站制作单页网站排名优化
  • 简易购物系统seo排名优化是什么意思
  • 外国网站学习做任务 升级google浏览器官网
  • 网站付费推广渠道百度网盘在线观看资源
  • 网站生成app 免费工具竞价托管咨询微竞价
  • 贵阳网站建设网站制作seo优化关键词是什么意思
  • 2023年3月份北京疫情seo sem关键词优化
  • 网站建设前分析自己做网站