nacos动态配置数据源_Jasper 怎么配置动态数据源
Jasper 本身是不支持动态数据源的,能用的解决方式是通过 api 自定义数据源,实际操作就是根据条件判断后动态设定 jdbc 的 url、用户名及密码等连接属性。比如:
String userName = userDetails.getUsername();// obtain a connection based on the username.String dataSourceURI = "";if (userName.equalsIgnoreCase("admin")) {dataSourceURI = "/datasources/ds_1";userName = "xx";…}else if{…}connection = getRepositoryDatasource(dataSourceURI);try {parameterValues.put(JRParameter.REPORT_CONNECTION,connection.getDataSource().getConnection());} catch (SQLException sqle){sqle.printStackTrace();}
API 尽管做到了动态数据源, 但过程还是比较复杂的,另外还会导致自定义类与应用间高耦合,后期维护也是挺麻烦的事儿。
如果有集算器,这个问题就很容易处理,比如某业务量较大的企业把每年的数据都分库存放在独立服务器。当按年度查询数据(如订单表)的时候,就要动态的去连对应库。
集算器 SPL 一句话搞定
其中,“connect(dataSource)”为获取数据库连接,“dataSource”为集算器参数,传入哪年就可以获取对应数据库连接。
上面的场景还只是最简单的取数需求,如果涉及到多数据源的混合运算,对于 Jasper 来说就更困难了,甚至没解决方案。这些问题引入集算器都会变的轻松,感兴趣的可以参考:分库后的统计查询。
集算器提供了 JDBC 驱动,可以很方便的与 Jasper 等报表工具集成,详细用法可参考JasperReport 调用 SPL 脚本。
关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器。
nacos动态配置数据源_Jasper 怎么配置动态数据源相关推荐
- mysql动态配置数据源_Spring整合Mybatis实现动态数据源切换教程配置
一.摘要 这篇文章将介绍Spring整合Mybatis 如何完成SqlSessionFactory的动态切换的.并且会简单的介绍下MyBatis整合Spring中的官方的相关代码. Spring整合M ...
- Spring Boot多数据源配置并通过注解实现动态切换数据源
文章目录 1. AbstractRoutingDataSource类介绍 2. ThreadLocal类介绍 3. 环境准备 3.1 数据库准备 3.2 项目创建 4. 具体实现 4.1 定义数据源枚 ...
- Skywalking+Nacos实现高可用集群和动态配置
注意:Skywalking启动时路径不可为中文(windows) 环境介绍# 下面是架构图: 软件版本信息: nacos:1.3.0 skywalking:8.5.0 elastcisearch:7. ...
- mybatis动态数据源配置(附自定义注解实现数据源切换)
在做DB数据迁移需求的时候要用到多数据源,正好整理下 实际用到以下几个类 配置文件 #端口 server.port: 8080 spring.application.name: lzqdemo# my ...
- jqGrid subGrid配置 如何首次加载动态展开所有的子表格
有时候需求需要默认加载表格的时候把子表格的数据也显示出来,经过研究相关SubGrids API配置如下: 属性 类型 描述 默认值 subGrid boolean 设置为true启用子表格.如果启用子 ...
- JAVA日记之mybatis-2代理开发/动态sql/sql抽取/核心配置标签 ----喝最烈的酒.
1.Mybatis的Dao层实现 1.1 传统开发方式 1.1.1编写UserDao接口 public interface UserDao {List<User> findAll() th ...
- Ubuntu18.04的网络配置(静态IP和动态IP) - OpsDrip - 博客园
Ubuntu18.04的网络配置(静态IP和动态IP) - OpsDrip - 博客园
- 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )
文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V . 完整代码示例 ...
- 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )
文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...
最新文章
- 小冰数字孪生主播正式上线 全球首创全流程无人化AI直播
- 光栅尺与PLC的配合使用
- Iptables防火墙原理
- 充值后的充值金额提交到账户金额中
- Python+OpenCV:图像二进制鲁棒独立基本特征(BRIEF, Binary Robust Independent Elementary Features)
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一3.3 验证XML文档
- 阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_06.入门案例的流程总结
- Flowable 6.6.0 Eclipse设计器 - 2.编辑器特性
- 给领导干部讲计算机课的开场,学习计算机课程的心得(1)讲课讲稿.pdf
- 张宇基础30讲——第6讲-中值定理
- Straight lines have to be straight
- cdh cm 大数据系统hadoop快速安装
- 用Python实现一个简易的“听歌识曲”demo(一)
- python后面空格报错_python空格报错
- 树莓派 博通BCM2835芯片手册
- mysql启动跳过错误_mysql启动错误
- python 画图自定义x轴刻度值
- 一场安防IPC模组方案发布会引发的吐槽风波与反思
- NOIP 2015 蒟蒻做题记录
- 斯坦福大学的产学研之路
热门文章
- 计算机竞赛CCC可以直接学吗,CCC 计算机竞赛到底有多牛!
- canvas 文字颜色_Canvas技术概述
- insert 语句的选择列表包含的项多于插入列表中的项_如何定义和使用Python列表(Lists)
- devServer proxy跨域 设置代理 proxy
- html 写一个日志控件 查看log
- Linux Test Project 测试套件说明
- 极速理解设计模式系列:11.单例模式(Singleton Pattern)
- Java String.split()用法小结
- 如何独立开发一个网络请求框架
- zencoding实践