ireport 5.6教程之数据源介绍

2025-06-24 03:07:37

1、ireport数据源偿跆火伙综述一个DataSource是Jasperreport获取数据以生成报表的源。这里有两种类型的DataSource:一种是JDBC Connection,用来从关系型数据库里取数据;另外一种是扩展了JRDataSource接口的java object,这种类型的对象允许我们去管理数据的细节,比如一个xml文件或一个javabean的集合。通过sql 查询从关系型数据库里取数据来填充生成报表是很简单的,iReport可以通过各个数据库厂商提供的JDBC Driver来获取连接生成要检索的field。如果我们不通过JDBC直接访问数据库来获得生成报表的字段与数据的时候,我们需要使用JRDataSource(全称JasperReport Data Source)。JRDataSource是一个接口,它允许我们访问具有行列结构的数据(在Datasource行我们叫records,列我们叫record fields)。不管是JDBC Connection还是JRDataSource,他们都不能通过JasperReport来创建,但是当应用程序调用生成报表的时候,我们可以通过JasperReports的fillReport方法传递一个打开的数据库连接(一个java.sql.Connection对象)或者是一个JRDataSource对象实例用于填充被调用的报表。对于传递一个java.sql.Connection对象的情形,JasperReports将在指定的报表里使用JDBC Connection来执行一个SQL查询,查询的结果将会被包含在一个JRResultSetDataSource对象里(JRResultSetDataSource也是一个JRDataSource对象的实例),这样JasperReports将使用一个JRDataSource对象来关联打印数据。

2、iReport中的数倌栗受绽据源iReport允许我们管理和配置不同类型的DataSources用来填充报表。这些DataSources被储存在iReport配置文件中当我们需要的时候即可以使用。我们可以使用的DataSources类型如下:- JDBC Connection- XML DataSource- JavaBean Collection DataSource- CSV DataSource- Custom DataSource- JRDataSourceProvider- Hibernate DataSource打开状态的JDBC Connection在报表生成的时候会被直接传递到JasperReport中。XML DataSource允许我们从XML文档里获取数据用来填充报表。一个CSV DataSource允许我们打开一个CSV文件来填充报表。JavaBean Collection DataSource,Custom DataSource和JRDataSourceProvider他们允许我们一个写好的java类来获取数据。Hibernate DataSource定义了一个执行HQL语言的方法。DataSource的管理我们可以通过在主菜单“Data Connections/DataSources”(图10.1)打开配置管理DataSource窗口界面。

ireport 5.6教程之数据源介绍

4、同时你也可以从主菜单里的“DataàSet the active connection”在弹出的窗口中选择一个DataSource并设置其为“active”状态。

ireport 5.6教程之数据源介绍

6、JDBC连接一个JDBC Connection允许我们从一个关系型数据库里直接获取数据(需要有一个JDBC Driver)。要添加一个新的JDBC Connection,可以点击“New”按钮打开创建新连接的管理窗口。

ireport 5.6教程之数据源介绍

8、点击“test”按钮,对JDBC连接做测试。完成新建JDBC Connection之后,别忘了在管理窗口中设置Connection的“active”状态。

ireport 5.6教程之数据源介绍ireport 5.6教程之数据源介绍

12、2.JDBC连接与JNDI连接的区别· JDBC连接数据库JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,下面介绍JDBC连接数据库的方法。

13、· JNDI连接数据库JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。

14、· JDBC 和JNDI连接数据库哪个更有优势使用JNDI连接某个数据源,如名为test,该数据源的所连接的数据库都在应用服务器端定义。因此JNDI连接数据源不需要关心具体的数据字羿岚寺库后台是什么?JDBC驱动程序是什么?JDBC URL格式是什么?访问数据库的用户名和口令是什么?甚至没有数据库连接池或连接管理。而是把这些问题交给J2EE容器来配置和管理,只需要对这些配置和管理进行引用即可。在报表部署后,如果数据库的相关参数变更,只需要重新修改配置文件中的JDBC参数,只要保证数据源的名称不变,那么数据连接就无需修改。由此可见,JNDI避免了报表与数据库之间的紧耦合,和项目共用服务器的连接池,使应用更加易于配置、易于部署。JDBC就是直接连接物理数据库,连接数据库比较快,但在程序中使用的话就比较烦琐,每次连接都要有一定的编码,和数据库的连接需要手动关闭。

15、2.1 JDBC连接数据库示例我们以连接Oracle数据库为例介绍JDBC方式连接一个数据库的操作步骤。· 新建数据库,选择JDBC方式连接

ireport 5.6教程之数据源介绍

17、· 连接池属性点击连接池属性可设置该JDBC数据连接的连接池配置,详细请查看JDBC连接池属性,这里使用默认设置,一般性都是用默认设置。

18、· 输入用户名、密码,测试连接输入Oracle数据库用户名与密码,点击左上方的测试连接,提示成功,数据库连接便定义好了。其他数据库连接步骤相同。注:测试连接成功并不是说已经可以正确地获取到数据库的数据,测试的只是网络连接。

ireport 5.6教程之数据源介绍ireport 5.6教程之数据源介绍ireport 5.6教程之数据源介绍

20、注:在进行数据连接的时候要注意驱动器支持的数据库版本,如果选择的数据库版本不在上述表格中,那么就需要更换驱动器。

21、· 示例使用oracle数据库的时候,没有使用上述表格中所说的版本,而是oracle7.2.3,那么需要把oracle7中jdbc/lib目录下的classes12.jar放进FR的WEB-INF/lib中,同时删除ojdbc14.jar。相当于换了一个oracle驱动。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢