cs模式报表-数据源篇
《cs模式报表使用简介》介绍了怎么展现、导出、打印报表,例子的报表数据是写死在报表模板中的,不是从数据库取出来的。报表要想从数据库中取数据,就要配置数据源。这篇文章将介绍怎么配置数据源连接数据库。
设置数据源是对Context类对象进行设置的,通过数据源工厂改变数据源连接IConnectionFactory connFactory=……; //构造数据源工厂类,一般为自定义类cxt.setConnectionFactory(sourceName,connFactory);//其中connFactory这个类必须实现IConnectionFactory接口,并且实现他的public //java.sql.Connection getConnection() throws Exception 方法
下面是设置报表运算环境的代码
//设置环境变量方法
private void setContext() {
//new一个context对象
cxt = new Context();
//定义数据源配置类
DataSourceConfig dsoc = new DataSourceConfig(DBTypes.UNKNOWNfalse“GBK”“GBK”,false);
//CSConnectionFactory、CSConnectionFactoryTwo为自定义类,构造数据源连接工厂
CSConnectionFactory csConnFactory = new CSConnectionFactory();
CSConnectionFactoryTwo csConnFactoryTwo = new CSConnectionFactoryTwo();
System.out.println(“connectionFactory:”+csConnFactory);
cxt.setDataSourceConfig(“demo”,dsoc);
cxt.setConnectionFactory(“demo”, csConnFactory);
cxt.setDataSourceConfig(“demo1″,dsoc);
cxt.setConnectionFactory(“demo1″, csConnFactoryTwo);
}
上面代码中设置了两个数据源:demo、demo1。
下面看一下数据源连接工厂的自定义类
public class CSConnectionFactory implements IConnectionFactory{
public java.sql.Connection getConnection() throws Exception {
Connection con=null;
try{
Driver driver=(Driver)Class.forName(“org.hsqldb.jdbcDriver”).newInstance();
con=DriverManager.getConnection(“jdbc:hsqldb:hsql://localhost:9001/runqianDB”,“sa”,“”);
}catch(Exception ex){}
return con;
}
}
这些代码都是java连接数据库的通用写法,没有特殊的地方,所以就没加注释。
cs模式报表配置数据源配置完毕。下面做个报表检测一下配置信息是否有效。
此报表创建了两个数据集,一个用到了数据源“demo”,一个用到了“demo1”。B2单元格的显示值用到了ds2
报表展现的效果:
报表展现正常,证明数据源配置起作用了。