Jasper如何配置动态数据源

Jasper如何配置动态数据源,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

成都创新互联公司是专业的鄯善网站建设公司,鄯善接单;提供成都网站制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行鄯善网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

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 一句话搞定


ABC
1=connect(dataSource)/get dataSource connect
2=A1.query(“select * from orders”)/Execution query

其中,“connect(dataSource)”为获取数据库连接,“dataSource”为集算器参数,传入哪年就可以获取对应数据库连接。

上面的场景还只是最简单的取数需求,如果涉及到多数据源的混合运算,对于 Jasper 来说就更困难了,甚至没解决方案。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


本文名称:Jasper如何配置动态数据源
浏览地址:http://bzwzjz.com/article/pcdjcd.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站设计 手机网站建设 阿坝网站设计 网站设计 网站设计 温江网站设计 营销型网站建设 成都网站设计 成都企业网站制作 网站设计 成都响应式网站建设 上市集团网站建设 成都网站制作 自适应网站设计 营销网站建设 响应式网站设计 外贸网站建设 定制级高端网站建设 做网站设计 成都网站设计 成都网站建设 网站建设开发