`

birt 数据源

阅读更多

第一种:读配置文件

importPackage( Packages.java.io,Packages.java.util,Packages.java.net );

importPackage( Packages.javax.servlet.http );

req = reportContext.getHttpServletRequest( );       

propPath = new String(params["propFile"].value);    // 把配置文件名用参数传进来

if ( propPath.charAt(0) != "/" )
  propPath = "/" + propPath;

url = req.getSession( ).getServletContext( ).getResource( propPath );    // 获得配置文件的相对路径

if ( url != null )                                                    //  如果文件的相对路径不为空,则读取配置文件
{
    props = new java.util.Properties( );
   
    props.load( url.openStream( ) );
   
 odaURL = new String(props.getProperty("url"));

 odaDriverClass = new String(props.getProperty("driver"));

 odaUser = new String(props.getProperty("userid"));

 odaPassword = new String(props.getProperty("password"));
}

 

 

第二种:共用项目架构中的spring配置文件

importPackage(Packages.org.springframework.context.support);  //引用Spring类

importPackage(Packages.org.apache.commons.dbcp);  //应用Datasource类

var ctx = new ClassPathXmlApplicationContext("applicationContext.xml");  //读取Spring配置文件

var dataSource = ctx.getBean("dataSourceName");  //读取DataSource

extensionProperties.odaURL = new String(dataSource.getUrl());  //读取Url并赋值

extensionProperties.odaUser = new String(dataSource.getUsername());  //读取Username并赋值

extensionProperties.odaPassword = new String(dataSource.getPassword());  //读取Password并赋值

 

第三种:为报表创建一个连接池,在报表中通过JNDI来获取连接信息(推荐采用这一种)

配置连接池(context.xml),配置的方法好像是tomcat版本不一样,方法也不一样,我是5.5

<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
   
    <Resource
      auth="Container"
      name="jdbc/birtDS"
      type="javax.sql.DataSource"
      maxIdle="5"
      maxWait="-1"
   driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
      username="sa"
   password="123"
      url="jdbc:sqlserver://127.0.0.1:1433;databaseName=rcwss"
      maxActive="10"/>
</Context>


然后在BIRT JDBC Data Source 中配置好JNDI URL , 我的是:java:comp/env/jdbc/birtDS

保存即可!

 http://zongpin.iteye.com/blog/423097

碰上一些诸如在生成的report中点击链接更新数据库数据等,可以在dataset里面用以下代码,自己创建一个独立的statment来完成insert,update,delete等操作。

    updateTxn = MXReportTxnProvider.create(this.getDataSource().getName());

    updateStmt = updateTxn.createStatement();

    updateStmt.setQuery("update table"
    + " set value = 'aaa'"
    + " where id = 1";
    
    updateTxn.save();
    updateTxn = null;
----------------

一些常用有用的sql 语句(用于oracle):

to_date(trunc(add_months(sysdate,-1),'MM'),'yyyy-mm-dd')
// 上个月的第一天
to_date(trunc(sysdate, 'MONTH')-1,'YYYYMMDD')
// 上个月的最后一天

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics