`
huhuanqadn
  • 浏览: 101655 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

birt 从配置文件读取数据库信息

    博客分类:
  • birt
阅读更多

首先发点牢骚,不知道birt为什么这么设计,要新建jdbc数据源,然后填写一些连接数据库信息,之后你可以读取配置文件的信息。
我晕,我以为使用脚本数据源,折腾半天不显示结果,也没错误。鄙视一下birt这样设计,按说我读取配置文件还要先建个jdbc数据源干什么呢?
好了,牢骚发完了,看一下怎么写了。
首先设置配置文件db.properties,我这里为了方便直接放在c盘目录下了。
db.properties内容如下:
driver=net.sourceforge.jtds.jdbc.Driver
url=jdbc:jtds:sqlserver://localhost:1433/pubs
userid=sa
password=pass


我创建jdbc写的url连的数据库是northwind
在新建的数据源beforeopen里写:
importPackage( Packages.java.io );
importPackage( Packages.java.util );
fin = new java.io.FileInputStream("c:\\db.properties");
props = new java.util.Properties( );
props.load(fin);
this.setExtensionProperty("odaURL", props.getProperty("url"));
this.setExtensionProperty("odaDriverClass", props.getProperty("driver"));
this.setExtensionProperty("odaUser", props.getProperty("userid"));
this.setExtensionProperty("odaPassword", props.getProperty("password"));

fin.close();

然后新建数据集,sql 如下:
select * from jobs
(jobs表位于pubs下,而不是northwind下)。
预览显示数据,说明数据源应用了script里读取配置文件里连接的pubs数据库。

顺便说一下
如果是web应用的话,可能使用下面的操作:
importPackage( Packages.java.io,Packages.java.util,Packages.java.net );
//导入java类
importPackage( Packages.javax.servlet.http );
req = reportContext.getHttpServletRequest( );
//得到HttpServletRequest对象
propPath = new String("WEB-INF/db.Properties");
if ( propPath.charAt(0) != "/" )
  propPath = "/" + propPath;
url = req.getSession( ).getServletContext( ).getResource( propPath );
//得到相对路径下的URL
if ( url != null ) {    props = new java.util.Properties( );
//得到Properties对象
   props.load( url.openStream( ) );
// 从URL构建的输入流中读取属性列表(键和元素对)
extensionProperties.odaURL = new String(props.getProperty("url"));
//为birt数据源属性赋值  
extensionProperties.odaDriverClass = new String(props.getProperty("driver"));
extensionProperties.odaUser = new String(props.getProperty("userid"));
extensionProperties.odaPassword = new String(props.getProperty("password")); }

这是别人写的一个方法,但是要注意,这里的代码在设计器里运行是会出错的,因为req.getSession()这里req为null,
req是req = reportContext.getHttpServletRequest( );这里得来的,但是没有在web应用,没有请示,这里取得的request为空。

所以写好代码后应放到web容器里从页面请求测试。

2
1
分享到:
评论
2 楼 banana8822 2012-07-12  
搞定了,楼主好人,一生平安
1 楼 banana8822 2012-07-12  
“在新建的数据源beforeopen里写:”,beforeopen?在哪里打开的?

相关推荐

    shior2.zip

    Shiro的配置通常在SpringBoot的配置文件(如application.yml或application.properties)中完成,包括设置 Realm、安全过滤器链等。例如,你可以配置 Realm 实例,指定它为默认的安全管理器,并设置相应的过滤器链,...

    redbird:用于Plug.Session的Redis适配器

    在实际使用`redbird`时,开发者需要在Phoenix项目的配置文件`config/config.exs`或环境特定的配置文件中进行设置,例如: ```elixir config :my_app, MyApp.Web.Endpoint, session_store: Redbird.SessionStore, ...

    centos8 - MySQL 安装.docx

    首先,你需要获取 MySQL 的 Yum 仓库配置文件。你可以从 MySQL 的官方网站下载,网址是 https://dev.mysql.com/downloads/repo/yum/ 。根据你的系统版本选择合适的配置文件。如果你已经下载了文件,可以将其上传到 `...

    uploadTest 20100513

    【压缩包子文件的文件名称列表】"FileUploadDownload"可能包含的是一个完整的文件上传下载功能的源代码示例,包括前端页面、后端处理代码、配置文件等。通过分析这些代码,可以深入理解文件上传下载的完整流程和具体...

    jsp留言本.rar

    6. **数据库配置文件**:可能是一个XML文件,包含了连接数据库所需的参数,如URL、用户名和密码。 7. **数据库文件**:如MySQL的`.sql`文件,用于创建留言表结构。 在学习和分析这个项目时,首先要了解JSP的基本...

    vc++ 开发实例源码包

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    springboot-redis-mybatis多对多例子

    在Spring Boot中使用MyBatis,我们需要添加MyBatis和MyBatis-Spring Boot Starter的依赖,并创建一个`mybatis-config.xml`配置文件,定义数据源和SqlSessionFactory。 对于多对多关系,假设我们有两个实体类,如`...

    vc++ 应用源码包_1

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    vc++ 应用源码包_2

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    vc++ 应用源码包_6

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    vc++ 应用源码包_5

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    vc++ 应用源码包_3

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    完整的asp转换htm

    2. **数据处理**:ASP页面通常用于从数据库中获取数据并动态生成内容。转换时,这些动态内容需要被提前获取并固定在HTML文件中。这可能需要对数据库进行查询,并将结果写入HTML。 3. **服务器配置**:ASP页面需要...

    基于PHP的红鸟Sessions类 v1.0.zip

    红鸟Sessions类库还可能支持自定义Session存储机制,允许开发者选择将Session数据存储在文件、数据库或其他持久化存储中,增强了灵活性。例如,通过配置,我们可以将Session数据存储在MySQL数据库中,以提高并发处理...

    Qt词典软件源代码

    源代码中可能包含配置文件(如.pro文件)和资源文件(如.qrc文件),用于编译和打包过程。 通过阅读和分析这个【Qt词典软件源代码】,开发者不仅可以学习到Qt框架的基本用法,还能深入了解桌面应用开发中的数据处理...

    一级Linux基础考试大纲.doc

    - 文本文件的读写操作,如打开、读取、写入、关闭文件。 8. 数据库访问: - 在VB中通过ADO(ActiveX Data Objects)等接口访问数据库的基本方法。 以上是对一级Linux基础和二级VB程序设计考试大纲的详细解释,...

    SSM个人博客项目

    麻雀虽小,五脏俱全,它包含了完整的CRUD(创建、读取、更新、删除)操作以及用户管理、文章发布、评论互动等常见的博客功能。下面将详细介绍SSM框架和项目中可能涉及的关键技术点。 1. **Spring框架**:Spring是...

    mbox2mysql-开源

    这为用户提供了灵活的数据管理选项,例如从数据库中检索特定邮件进行查看或编辑,然后再将其存回mbox文件。 5. **开源优势** - 作为开源软件,mbox2mysql允许用户自由使用、修改和分发。开发者可以根据自己的需求...

    SSH个人相册项目

    - 照片上传:用户可以选择多张照片上传,Struts处理文件上传,Hibernate将照片信息存储到数据库。 - 相册管理:用户可以创建、编辑和删除相册,这些操作会涉及到多个表的关联操作。 - 照片浏览:展示用户的照片,...

Global site tag (gtag.js) - Google Analytics