本文可以定位于 认识IReport这个IDE本身及其基本用法 ,学习时,你不需要全部实现此文章中的例子,只要理解便可,具体用法将在后面提到, 本文主要讲述了ireport的下载、安装和界面介绍,以及基本的使用方法:通过连接一个mysql的数据源,设计一个列表式的报
本文可以定位于认识IReport这个IDE本身及其基本用法,学习时,你不需要全部实现此文章中的例子,只要理解便可,具体用法将在后面提到, 本文主要讲述了ireport的下载、安装和界面介绍,以及基本的使用方法:通过连接一个mysql的数据源,设计一个列表式的报表,并讲述了在Java程序中使用此报表的基本步骤。报表的结果预览如下图:
,http://www.川江号子.cn 。
另,本人有Word电子文档格式,如需要,请联系本人:asima127@gmail.com
1 下载iReport
iReport是一个可视化的报表模板设计工具,使用此工具能方便地对报表进行设计。在iReport中已经包含了jasperreports在运行时需要的jar文件,在项目中的lib目录中包含Jasperreports-***.jar即可,其中***为版本号,比如2.0.3。
下载地址:http://sourceforge.net/project/showfiles.php?group_id=64348,此文档编写时版本为2.0.3,如图:
点击download出现以下界面:
可以看到提供了多种下载包,其中:
? iReport-2.0.3-src.zip:为iReport的源代码
? iReport-2.0.3.tar.gz:为.tar.gz格式,一般用于Linux、Unix等非windows系统
? iReport-2.0.3-windows.installer.exe:为exe格式,一般用于windows系统
? iReport-2.0.3.zip:为zip格式,可以用于各类操作系统
本文使用window版本为例,因此下载iReport-2.0.3-windows.installer.exe即可。
2 安装iReport
安装iReport需要先设置JDK环境,2.0.X版本要求JDK1.5环境(另参考文档)。
如果是windows系统,直接双击安装图标 即可。(如果是下载的ZIP文档,则将其解压到指定的目录,还需运行bin/startup.bat)。
如果是其他系统,比如Linux,Unix等,解压下载的安装文件(如下载的是tar.gz格式,使用tar xvfziReport-2.0.3.tar.gz进行解压,如下载的zip格式,使用zip命令解压),然后运行bin/startup.sh即可。
以下以在windows上安装为例:
A. 欢迎界面,点击“Next >”继续
B. 阅读license内容,点击“I Agree”继续
C. 选择安装组件,点击“Next >”继续
D. 指定安装路径,点击“Next >”继续
E. 指定程序组名称,点击“Install”即可
F. 等待安装过程
G. 安装结束,点击“Finish”完成
在桌面上会出现如此图标: 。
3 编辑一个报表模板
3.1 启动iReport
启动iReport-2.0.3,如图:
iReport启动会根据运行的机器的Locale属性自动设置软件语言(Language),这里可能会出现一些偏差,笔者使用的是简体中文,但启动后设计界面是繁体中文,因此我们需要对其进行设置。
3.2 设置默认语言
工具栏->“工具”(或“Option”)->“選項”
更改语言种类,从下来菜单中选择“中文(中国)”。如果打开就是此项,可以先更换成别的种类(比如“中文”),然后再次进入此界面将其更换成“中文(中国)”。
点击“存檔”后,可以看到界面变成了“简体中文”:
3.3 其他设置
此步不是必须的,根据需要设定。
使用iReport新创建的报表模板为.jrxml格式,编辑完毕后需要编译,编译会产生.jasper文件,在运行时需要编译好的.jasper文件。这原理类似java程序,源代码文件是.java,编译好之后是.class文件,在应用的时候只需要.class文件。
由于安装好之后默认的产生.jasper文件就在当前目录,为了便于管理,可以对iReport设计软件进行一些设置,统一目录来保存编译好的jasper文件。
iReport可以有多种方式进行报表预览(pdf、excel)等,每次预览时候,如果选择这些格式,那么会产生这些文件,也可以通过此设置统一保存。
工具栏上“Option”->“选项”,然后在选项卡上选择“Compiler”,对“Default compilation directory”和“Directory where the paged out data is stored”进行设置,点击旁边的“浏览”即可进行目录选择。
如果编译不希望保存自动产生的java文件,可以去掉“keep .java file”前面的勾选。
3.4 新建报表模板Sample
A. 工具栏->“档案”->“开启新档”
B. 输入报表名称,本文为“sample”,点击“OK”继续
C. 如图界面
如图,可以看到报表模板正文分几个区域,解释如下:
? title
title 段只在整个报表的第一页的最上面部分显示,除了第一页以外,不管报表中共有多少个页面也不会再出现title段中的内容。
? pageHeader
pageHeader 段中的内容将会在整个报表中的每一个页面中都会出现,显示在位置在页面的上部,如果是报表的第一页,pageHeader中的内容将显示在title段下面,除了第一页以外的其他所有页面中pageHeader中的内容将在显示在页面的最上端。
? columnHeader
针对detail段的表头段,一般情况下在这个段中画报表中列的列标题。每页均会出现一次。
? detail
报表内容段,在这个段中设计报表中需要重复出现的内容,detail段中的内容每页都会出现。
? columnFooter
针对detail段的表尾段,每页均会出现一次。
? pageFooter
显示在所在页面的最下端,每页都显示,最后一页由lastPageFooter替代
? lastPageFooter
最后一页页尾段内容,只在最后一页出现一次。
? summary
表格的合计段,出现在整个报表的最后一页中的detail段的后面,一般用来统计报表中某一个或某几个字段的合计值。
D. 创建数据库类型的JDBC数据源
iReport支持多种数据库,本例采用mysql作为示例
工具栏上“Data”->“连结/资源来源”
在“Connections/Datasources”界面中点击“New”
在“Connections properties”中选择“DatabaseJDBC connection”,点击“Next”继续,这里可以看到,jasperreport的数据来源可以有很多方式:数据库、XML文件、JavaBean文件等,从下图中可以看出来。
E. 指定数据库JDBC类型和JDBC URL
其中,iReport中已经包含了mysql和hsqldb这两种数据库的驱动jar文件,可以根据实际需要选择不同的JDBC Type,(记得拷贝相应的数据库JDBC驱动jar文件到项目的lib目录中)
根据实际内容,输入JDBC URL和用户名及密码
输入完成后,点击“Text”,如出现如下界面,说明连接成功。
点击“save”保存,在列表中可以看到此连接的配置
F. 设置报表查询
工具栏“Data”->“报表查询”
出现如下界面:
可以看到数据源有多种方式,这里我们使用Report Query方式,这种方式可以直接选择Query Lanuage种类,然后再在编辑框中输入SQL语句。
如:select * from employee,然后会自动读取相关表的结构出来,如图:
点击“OK”以后,这些表的Field Name将会被加入到“Document structure”的“Fields”部分,如图:
这里也可以采用另一种方式,就是引入参数,这样可以在调用的时候根据业务规则比较灵活地通过设置参数来改变数据内容:
在“Document structure”区找到“Parameters”,右键单击后,选择“Add…”,再选择“Parameter”,如图:
输入以下内容,ParameterName在报表查询界面中要使用,或在自己的业务逻辑中使用,可以改变,这里也可以给一个默认值,即Default ValueExpression内容,注意Parameter Class Type类型,本例使用默认的java.lang.String
在“报表查询”编辑内容中就指定为使用此参数,格式为“$P!{parameterName}”,本例中就使用“$P!{SQLSTR}”,输入后,同样可以看到表结构会自动更新出来,点击“OK”,同样会把这些表结构内容放置到“Fileds”区域中。
G. 编辑报表模板
如图:在编辑区中对应的段中放置需要的要素,要素有很多种,常用的有以下几种类型:
?
静态文本内容 :这些内容是固定不变的文本内容,如上图的“Test Report”
? 参数(Parameter):如上图“$P{SQLSTR}”
? 字段(Fields):如上图“$F{EMPLOYEE_ID}”
? 变量(Variables):如上图“$V{PAGE_NUMBER}”
从这里面把需要的内容拖出来放置到模板编辑区中
相应的段中即可。
H. 编译预览
在工具栏上找到 ,分别是编译、执行、执行(动态连结),点击编译将会产生.jasper文件,点击执行会先编译再预览(如果设定了对应的预览)。
预览有多种方式,点击工具栏上“建立”,可以看到如下图多种预览方式:
根据需要选择预览类型,还要注意,如果没有对应的软件(比如Adobe Reader)来查看生成好的文件,那不会看到效果,iReport会在对应的目录生成文件而已(见3.3节)。
如何设置文件的查看软件,还是在工具栏上点击“Options”->“选项”,然后在选项卡中选择“External Programs”,再对每一种需要设置的格式选择对应的查看软件,如图:
这样,指定了预览文件的类型,又指定了预览的软件,点击预览时就会采用对应的润见展示出来。
I. 预览效果
J. 报表模板制作完成
4 Web中使用iReport
4.1 开发工具
开发工具使用eclispe3.2.2和MyEclipse5.0搭配开发。环境配置参考另外的手册。
4.2 创建项目
打开Eclipse,在工具栏中,“File”->“New”->“Other”
创建一个web项目,选择“MyEclipse”下的“Web Project”,点击“Next”下一步,如图:
输入Project Name,本例为“iReportTest”,点击“Finish”完成如图:
在项目列表中可以看到iReportTest的项目:
4.3 导入jar文件
在项目中找到“WebRoot”->“lib”,右键单击,选择“Import…”,如图:
选择“General”->“File System”点击“Next”继续
点击“Browse…”,指定jar文件,这里初级学者可以指向Jasper安装目录下的lib目录中所有的jar文件,这样可以快速看到效果,可以排除其中的txt文件。
项目中可以看到jar文件被引入了,如图:
4.4 导入jasper文件
在WebRoot下建立目录report,并把3.4节编译好的jasper文件导入进来。
4.5 处理带有中文的报表
当生成为PDF格式时,可能会发现中文内容无法显示,主要是设置font时候需要注意以下几点:
1. 设置的字体的Font Name需要是能显示中文的,比如宋体、SansSerfi
2. 设置PDF Font Name为STSong-Light
3. 设置PDF Encoding为UniGB-UCS2-H (Chinese Simplified)
4. 是否lib中包含iTextAsian.jar文件
右键单击需要改变字体的内容,选择“属性”,在选项卡中选择“Font”,做如图更改:
PDF预览效果如下:
4.6 字体属性统一设置
在上一节中是针对每一个字体框进行设置,如果需要设置100个的话,这样一个一个去设置就显得比较繁琐,减低了效率。
iReport提供了一个功能,就是把这种设置配置好,然后只是需要的时候选择就可以了。在工具栏中“格式化”->“Style”(2.0.3是推荐使用这种方式,如果早期版本是选择“字体”),如图:
点击“New”创建一种新格式,命名为“宋体”,再进行相关设置,如图:
这样,这个“宋体”的Style就设置好了,在设定字体的时候就不需要再到选项卡一项一项地进行设置,在字体的属性中选择“Common”选项卡,在Style中选择这个“宋体”即可:
4.7 创建显示HTML格式报表的JSP文件
在WebRoot根目录下创建jsp文件testhtml.jsp,内容如下:
page contentType="text/html;charset=GB2312"%> page import="net.sf.jasperreports.engine.*"%> page import="java.util.*"%> page import="java.io.*"%> page import="java.sql.*"%>
//报表编译之后生成的.jasper文件的存放位置 File reportFile =new File(this.getServletContext(). (1) getRealPath("/report/sample.jasper"));
String url="jdbc:mysql://localhost:3306/db"; Class.forName("com.mysql.jdbc.Driver"); Map parameters =new HashMap(); //"SQLSTR"是报表中定义的参数名称,其类型为String型 //设置SQLSTR参数的内容,根据需要赋值sql语句 parameters.put("SQLSTR","select * from employee"); (2) Connectionconn =DriverManager.getConnection(url, (3) "username","password"); JasperRunManager.runReportToHtmlFile(reportFile.getPath(), (4) parameters,conn); response.sendRedirect("report/sample.html"); (5) %> |
代码说明:
1. 定位jasper文件
2. 给报表模板中使用到的参数SQLSTR赋值,这里指定一个sql语句
3. 采用JDBC方式连结数据库
4. 生成HTML文件,参数分别为报表文件模板物理位置,报表参数,数据库连结
5. 转向到此页面,这个页面是固定的,需要和报表模板的位置和路径相同
发布项目后预览,输入http://localhost:8080/iReportTest/testhtml.jsp(本例采用tomcat作为web服务器,发布过程参考其他文档,数据库采用的mysql)
效果:
4.8 创建显示PDF格式报表的JSP文件
在WebRoot根目录下创建jsp文件testpdf.jsp,内容如下:
page contentType="application/pdf;charset=UTF-8"%> page import="net.sf.jasperreports.engine.*"%> page import="java.util.*"%> page import="java.io.*"%> page import="java.sql.*"%>
//报表编译之后生成的.jasper文件的存放位置 File reportFile =new File(this.getServletContext(). getRealPath("/report/sample.jasper"));
String url="jdbc:mysql://localhost:3306/db"; Class.forName("com.mysql.jdbc.Driver"); Map parameters =new HashMap(); //"SQLSTR"是报表中定义的一个参数名称,其类型为String型 parameters.put("SQLSTR", "select * from employee where employee_id like 'Z%'"); Connection conn = DriverManager.getConnection(url, "username","password");
byte[] bytes=JasperRunManager. runReportToPdf(reportFile.getPath(),parameters,conn);
response.setContentType("application/pdf"); response.setContentLength(bytes.length);
ServletOutputStream outStream = response.getOutputStream(); outStream.write(bytes,0,bytes.length); outStream.flush(); outStream.close(); out.clear(); out = pageContext.pushBody(); %> |
效果如下:

데이터베이스 최적화에서 쿼리 요구 사항에 따라 인덱싱 전략을 선택해야합니다. 1. 쿼리에 여러 열이 포함되고 조건 순서가 수정되면 복합 인덱스를 사용하십시오. 2. 쿼리에 여러 열이 포함되어 있지만 조건 순서가 고정되지 않은 경우 여러 단일 열 인덱스를 사용하십시오. 복합 인덱스는 다중 열 쿼리를 최적화하는 데 적합한 반면 단일 열 인덱스는 단일 열 쿼리에 적합합니다.

MySQL 느린 쿼리를 최적화하려면 SlowQueryLog 및 Performance_Schema를 사용해야합니다. 1. SlowQueryLog 및 Set Stresholds를 사용하여 느린 쿼리를 기록합니다. 2. Performance_schema를 사용하여 쿼리 실행 세부 정보를 분석하고 성능 병목 현상을 찾고 최적화하십시오.

MySQL 및 SQL은 개발자에게 필수적인 기술입니다. 1.MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템이며 SQL은 데이터베이스를 관리하고 작동하는 데 사용되는 표준 언어입니다. 2.MYSQL은 효율적인 데이터 저장 및 검색 기능을 통해 여러 스토리지 엔진을 지원하며 SQL은 간단한 문을 통해 복잡한 데이터 작업을 완료합니다. 3. 사용의 예에는 기본 쿼리 및 조건 별 필터링 및 정렬과 같은 고급 쿼리가 포함됩니다. 4. 일반적인 오류에는 구문 오류 및 성능 문제가 포함되며 SQL 문을 확인하고 설명 명령을 사용하여 최적화 할 수 있습니다. 5. 성능 최적화 기술에는 인덱스 사용, 전체 테이블 스캔 피하기, 조인 작업 최적화 및 코드 가독성 향상이 포함됩니다.

MySQL 비동기 마스터 슬레이브 복제는 Binlog를 통한 데이터 동기화를 가능하게하여 읽기 성능 및 고 가용성을 향상시킵니다. 1) 마스터 서버 레코드는 Binlog로 변경됩니다. 2) 슬레이브 서버는 I/O 스레드를 통해 Binlog를 읽습니다. 3) 서버 SQL 스레드는 데이터를 동기화하기 위해 Binlog를 적용합니다.

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) 데이터베이스 및 테이블 작성 : CreateAbase 및 CreateTable 명령을 사용하십시오. 2) 기본 작업 : 삽입, 업데이트, 삭제 및 선택. 3) 고급 운영 : 가입, 하위 쿼리 및 거래 처리. 4) 디버깅 기술 : 확인, 데이터 유형 및 권한을 확인하십시오. 5) 최적화 제안 : 인덱스 사용, 선택을 피하고 거래를 사용하십시오.

MySQL의 설치 및 기본 작업에는 다음이 포함됩니다. 1. MySQL 다운로드 및 설치, 루트 사용자 비밀번호를 설정하십시오. 2. SQL 명령을 사용하여 CreateAbase 및 CreateTable과 같은 데이터베이스 및 테이블을 만듭니다. 3. CRUD 작업을 실행하고 삽입, 선택, 업데이트, 명령을 삭제합니다. 4. 성능을 최적화하고 복잡한 논리를 구현하기 위해 인덱스 및 저장 절차를 생성합니다. 이 단계를 사용하면 MySQL 데이터베이스를 처음부터 구축하고 관리 할 수 있습니다.

innodbbufferpool은 데이터와 색인 페이지를 메모리에로드하여 MySQL 데이터베이스의 성능을 향상시킵니다. 1) 데이터 페이지가 버퍼 풀에로드되어 디스크 I/O를 줄입니다. 2) 더러운 페이지는 정기적으로 디스크로 표시되고 새로 고침됩니다. 3) LRU 알고리즘 관리 데이터 페이지 제거. 4) 읽기 메커니즘은 가능한 데이터 페이지를 미리로드합니다.

MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
