




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ireport 56入门教程之数据源介绍 ireport5.6入门教程之数据源介绍入门教程之数据源介绍ireport数据源综述数据源综述一个DataSource是Jasperreport获取数据以生成报表的源。 这里有两种类型的DataSource一种是JDBC Connection,用来从关系型数据库里取数据;另外一种是扩展了JRDataSource接口的java object,这种类型的对象允许我们去管理数据的细节,比如一个xml文件或一个javabean的集合。 通过sql查询从关系型数据库里取数据来填充生成报表是很简单的,iReport可以通过各个数据库厂商提供的JDBC Driver来获取连接生成要检索的field。 如果我们不通过JDBC直接访问数据库来获得生成报表的字段与数据的时候,我们需要使用JRDataSource(全称JasperReport DataSource)。 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对象来关联打印数据。 iReport中的数据源iReport允许我们管理和配置不同类型的DataSources用来填充报表。 这些DataSources被储存在iReport配置文件中当我们需要的时候即可以使用。 我们可以使用的DataSources类型如下-JDBC Connection-XML DataSource-JavaBean CollectionDataSource-CSV DataSource-Custom DataSource-JRDataSourceProvider-Hibernate DataSource打开状态的JDBC Connection在报表生成的时候会被直接传递到JasperReport中。 XML DataSource允许我们从XML文档里获取数据用来填充报表。 一个CSV DataSource允许我们打开一个CSV文件来填充报表。 JavaBean CollectionDataSource,Custom DataSource和JRDataSourceProvider他们允许我们一个写好的java类来获取数据。 Hibernate DataSource定义了一个执行HQL语言的方法。 DataSource的管理我们可以通过在主菜单“Data Connections/DataSources”(图10.1)打开配置管理DataSource窗口界面。 从技术的角度去看一个Connection和一个DataSource是两个不同的对象(Connection需要一个关系一个关系型数据库,但是一个DataSource只是提供一个简单的接口用来访问数据结构)。 虽然我们可以建立了若干个DataSource准备使用,但是iReport在工作时同一时候总是使用一个DataSource或一个connection。 因此你需要设置一个“active”datasource。 设置一个dataSource为“active”最简单的方法是在工具条上的下拉框里选择一个你要使用的datasource,那么这个datasource就处于“active”状态了。 同时你也可以从主菜单里的“DataSet theactive connection”在弹出的窗口中选择一个DataSource并设置其为“active”状态。 图62最后我们还可以在DataSource窗口里通过“set default”来设置“active”状态的DataSource。 如果没有datasource处理“active”处于激活状态,那么iReport里生成的报表里面将不会产生数据。 同时当我们使用报表向导的时候要求必须要有一个处于“active”状态的JDBC Connection。 下面以JDBC连接为例,来介绍ireport中的数据源具体设置方式。 JDBC连接一个JDBC Connection允许我们从一个关系型数据库里直接获取数据(需要有一个JDBC Driver)。 要添加一个新的JDBC Connection,可以点击“New”按钮打开创建新连接的管理窗口。 选择“Database JDBC Connection”点击“Next”,在出现的窗口中输入数据源的名称及Driver、URL、username,password等相关信息。 点击“test”按钮,对JDBC连接做测试。 完成新建JDBC Connection之后,别忘了在管理窗口中设置Connection的“active”状态。 当报表采用的是一个JDBCConnection创建的时候,用户需要指定一个SQL语句用来从数据库里取出数据。 主报表的Connection也可以为其子报表提供服务。 例如,JasperReport里的REPORT_CONNECTION,一个java.sqlConnection类型的内建参数对象放在表达式里提供给子报表使用。 $PREPORT_CONNECTION这个参数包含的是一个正确的从应用程序里传入的java.sql.Connection对象。 使用JDBC或一个SQL Connection是一种最简单的最容易的方式用来填充报表,关于创建SQL查询的细节我们将在11章中讲解。 为了可以在报表中使用通过SQL查询出来的fields,我们需要“Register”它们(要注册的可能不是全部是字段,仅仅只是我们在报表中要使用的字段)。 对于每一个字段我们需要指定一个名称和字段的类型,下表中显示了SQL类型所对应的Java类型。 SQL类型JAVA类型CHARStringVARCHARStringLONGVARCHARStringNUMERICJava.math.BigDecimalDECIMALJava.math.BigDecimalBITBooleanINTYINGIntegerSMALLINTIntegerINTEGERIntegerBINARYByteVARBINARYByteLONGVARBINARYByteDATEJava.sql.DateTIMEJava.sql.TimeTIMESTAMPJava.sql.Timestamp在上面的表当中对于BLOG和CLOB类型和其它的特殊类型如ARRAY、STRUCT,REF等我们没有指定对应的JAVA类型,这是因为这些类型在JasperReports里不能自动管理它们。 同为比较常用的java报表生成工具,FineReport对数据源的解决方案和实现方法与ireport有所不同,具体实现思路和步骤如下,供ireport使用者借鉴 1、概述、概述制作报表前首先需要定义数据,实际用户系统最长见的就是数据保存在数据库中,并且在不断更新中,使用数据库数据来制作报表,并且报表内容会随着数据库的更新而更新。 FR天然支持这一点,只需要在服务器定义数据连接中定义需要连接的数据库,就可以自定义查询语句查询出需要的数据,从而制作报表,如下图数据连接存储在工程中,当用户执行需要访问数据库的操作时这些连接被激活。 一个报表工程可以定义多个数据库连接,所有信息都保存在appName/WEB-INF/resources/datasource.xml配置文件中。 可以通过JDBC、JNDI、SAP、XMLA和FineBI五种方式连接数据库,当报表执行时需要访问数据库时这些连接才会被激活。 注XMLA和FineBI连接的是多维数据库,其中FineBI是连接帆软的另一款BI产品的数据库。 2.JDBC连接与连接与JNDI连接的区别连接的区别?JDBC连接数据库连接数据库JDBC(Java DataBase Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,下面介绍JDBC连接数据库的方法。 ?JNDI连接数据库连接数据库JNDI(Java Namingand DirectoryInterface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。 ?JDBC和和JNDI连接数据库哪个更有优势连接数据库哪个更有优势使用JNDI连接某个数据源,如名为test,该数据源的所连接的数据库都在应用服务器端定义。 因此JNDI连接数据源不需要关心具体的数据库后台是什么?JDBC驱动程序是什么?JDBC URL格式是什么?访问数据库的用户名和口令是什么?甚至没有数据库连接池或连接管理。 而是把这些问题交给J2EE容器来配置和管理,只需要对这些配置和管理进行引用即可。 在报表部署后,如果数据库的相关参数变更,只需要重新修改配置文件中的JDBC参数,只要保证数据源的名称不变,那么数据连接就无需修改。 由此可见,JNDI避免了报表与数据库之间的紧耦合,和项目共用服务器的连接池,使应用更加易于配置、易于部署。 JDBC就是直接连接物理数据库,连接数据库比较快,但在程序中使用的话就比较烦琐,每次连接都要有一定的编码,和数据库的连接需要手动关闭。 2.1JDBC连接数据库示例连接数据库示例我们以连接Oracle数据库为例介绍JDBC方式连接一个数据库的操作步骤。 ?新建数据库,选择新建数据库,选择JDBC方式连接方式连接?选择数据库类型,修改选择数据库类型,修改URL选择数据库类型如Oracle,会自动加载的驱动器及默认的URL,根据实际数据库服务器地址修改URL,如下?连接池属性连接池属性点击连接池属性可设置该JDBC数据连接的连接池配置,详细请查看JDBC连接池属性,这里使用默认设置,一般性都是用默认设置。 ?输入用户名、密码,测试连接输入用户名、密码,测试连接输入Oracle数据库用户名与密码,点击左上方的测试连接,提示成功,数据库连接便定义好了。 其他数据库连接步骤相同。 注测试连接成功并不是说已经可以正确地获取到数据库的数据,测试的只是网络连接。 2.2数据库驱动及数据库驱动及URL对应表对应表以下列出设计器中支持的数据库及对应的连接属性值数据库类型驱动器URL支持数据库版本Oracleoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:ip:1521:databaseNameOracle9i、Oracle10g、Oracle11gOracleoracle.jdbc.driver.OracleDriverjdbc:oracle:oci:databaseNameOracle9i、Oracle10g、Oracle11gSqliteorg.sqlite.JDBCjdbc:sqlite:/$ENV_HOME/./FRDemo.dbDB2.ibm.db2.j.DB2Driverjdbc:db2:/ip:50000/databaseNameDB2_7. 2、DB2_8.1SQLServer.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver:/ip:1433;databaseName=xxxSQLServer 2000、 xx、xxSQL.sourceforge.jtds.jdbc.Driverjdbc:sqlserver:/ip:1433;databaseName=xxxSQLServerServer 2000、 xx、xxMySQL.mysql.jdbc.Driverjdbc:mysql:/ip/databaseName?user=root&useUnicode=True&characterEncoding=gb2312MySQL4.0版本以上MySQLorg.gjt.mm.mysql.Driverjdbc:mysql:/ip/databaseName?user=root&useUnicode=True&characterEncoding=gb2312MySQL4.0版本以上Sybase.sybase.jdbc2.jdbc.SybDriverjdbc:sybase:Tds:ip:5000/databaseName?CHARSET=cp936SybaseAesssun.jdbc.odbc.JdbcOdbcD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南张家界市桑植县卫生健康局机关所属事业单位公开选调工作人员3人模拟试卷完整参考答案详解
- 2025年重组载体疫苗合作协议书
- 2025年近代物理研究所部分研究室负责人竞聘考前自测高频考点模拟试题及答案详解(各地真题)
- 2025广东惠州仲恺高新区招聘中小学教师105人(编制)考前自测高频考点模拟试题及答案详解(名校卷)
- 2025安庆岳西县安徽省岳顺人力资源服务有限公司招聘26人模拟试卷含答案详解
- 2025黑龙江黑河市爱辉区花园社区卫生服务中心招聘非事业编制人员7人考前自测高频考点模拟试题及完整答案详解1套
- 2025昆明市呈贡区卫生健康系统编外合同制专业技术人员招聘(7人)考前自测高频考点模拟试题及参考答案详解1套
- 2025江苏徐州医科大学招聘专职辅导员4人考前自测高频考点模拟试题有完整答案详解
- 2025广西崇左凭祥市国防动员办公室公开招聘工作人员1人考前自测高频考点模拟试题完整参考答案详解
- 2025北京首都师范大学附属育新学校招聘12人模拟试卷及答案详解(有一套)
- 学术论文文献阅读与机助汉英翻译智慧树知到答案2024年重庆大学
- (初级)航空油料特设维修员(五级)理论考试题库-上(单选题)
- 医疗质量医疗安全十八项核心制度培训模板
- 预应力混凝土管桩(L21G404)
- 2023年山西省普通高中学业水平考试真题物理试题(含答案解析)
- 国家职业技术技能标准 4-07-02-05 商务数据分析师S 2024年版
- 模具开发进度管理表
- 成都中医药大学药学院毕业实习鉴定表
- 投标货物质量标准的详细描述
- 镇墩稳定计算
- 2023-2024学年辽宁省沈阳市郊联体高二上学期10月月考物理试题(解析版)
评论
0/150
提交评论