最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

iReport连接Mysql创建图表报表

来源:动视网 责编:小采 时间:2020-11-09 14:47:24
文档

iReport连接Mysql创建图表报表

iReport连接Mysql创建图表报表:列举一下需要的资源: 1、mySql数据库安装好的 2、iReport+jasperreport配置好 3、我用的是Myeclipse,MySQL的驱动jar包不要忘记 第一部分:创建数据库连接 package com.mySqlsource;import java.sql.Connection;public
推荐度:
导读iReport连接Mysql创建图表报表:列举一下需要的资源: 1、mySql数据库安装好的 2、iReport+jasperreport配置好 3、我用的是Myeclipse,MySQL的驱动jar包不要忘记 第一部分:创建数据库连接 package com.mySqlsource;import java.sql.Connection;public


列举一下需要的资源: 1、mySql数据库安装好的 2、iReport+jasperreport配置好 3、我用的是Myeclipse,MySQL的驱动jar包不要忘记 第一部分:创建数据库连接 package com.mySqlsource;import java.sql.Connection;public class Database {private String dbUr

列举一下需要的资源:

1、mySql数据库安装好的

2、iReport+jasperreport配置好

3、我用的是Myeclipse,MySQL的驱动jar包不要忘记

第一部分:创建数据库连接

package com.mySqlsource;

import java.sql.Connection;

public class Database {
	private String dbUrl = "jdbc:mysql://localhost:3306/bookdb";
	 private String dbUser="root";
	 private String dbPwd="123456";

	 public Database () throws Exception{
	 Class.forName("com.mysql.jdbc.Driver");
	 }

	 public Connection getConnection()throws Exception{
	 return java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
	 }

	 public void closeConnection(Connection con){
	 try{
	 if(con!=null) con.close();
	 }catch(Exception e){
	 e.printStackTrace();
	 }
	 }
}
这个格式基本都一样的,其中bookdb是我新建数据库的名称,getConnection和closeConnection是两个操作开关,在使用的时候直接新建Database对象调用就好了。

第二部分:先看看我的数据库books表

打开iReport新建一张表不懂的话去看其他人的博客,很多的。在界面上找到数据源打开进行如下选择

这个应该很简单的,设置完之后点击Test会提示测试成功,否则就是你的某些设置没做好,再重新检查一遍

打开组件面板找到拖动到任意bands中,在iReport4.6.0中有一部分表格是有想到的,一部分没有,这个倒没关系了有的话一路next下去

没有的话直接完成后在图表上面右键选择chart data;点击Details,

这里是有默认名称的,双击默认名称打开属性设置界面

关于各个字段的意思及作用,我之前的文章有写到过,这里就不在赘述,有需要的话就翻翻前面的好了。

设置好之后,点击预览会出现如下情况

原因是在设计面板右侧图表的属性一栏,有一个属性Evaluation Time,大致意思就是什么时候进行更新数值,它默认是NOW

在这种情况下,只有你放在detail bands才会出现,但是它会出现很多次,不是我们想要的。将它设置为report就是在报表数据配置好之后进行更新,再次预览

第三部分:做好了这一步之后,对于可以连接数据库的人来说已经够了,但是如果想要通过web动态生成客户想要的报表呢,那么我们还是要通过网络连接数据库,之后再动态我们需要的模板

我使用Myeclipse+tomcat做的网站

package com.mySqlsource;

import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.sql.Connection;

import javax.servlet.ServletException;
import javax.servlet.http.*;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.util.JRLoader;

public class MySqlSource extends HttpServlet{


	public void doGet(HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException {
	// TODO Auto-generated method stub
	doPost(req, resp);
	}


	public void doPost(HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException {
	// TODO Auto-generated method stub
	try{
	String root_path=this.getServletContext().getRealPath("/");
	root_path=root_path.replace("\\", "/");
	String file_path=root_path+"chart/test_char.jasper";
	
	Database data=new Database();	
	Connection con=data.getConnection();
	JasperReport report= (JasperReport)JRLoader.loadObject(file_path);
	JasperPrint print=JasperFillManager.fillReport(report, null, con);
	data.closeConnection(con);
	
	 OutputStream ouputStream = resp.getOutputStream(); 
	 resp.setContentType("application/pdf");
	 resp.setCharacterEncoding("UTF-8"); 
	 resp.setHeader("Content-Disposition", "attachment; filename=\""+ URLEncoder.encode("PDF报表", "UTF-8") + ".pdf\""); 
	 	
	 // 使用JRPdfExproter导出器导出pdf 
	 JRPdfExporter exporter = new JRPdfExporter(); 
	 exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
	 exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream); 
	 exporter.exportReport();
	 
	 
	 ouputStream.close(); 
	
	}catch(Exception e){
	e.printStackTrace();
	
	}
	}
	
}
文件列表

test_char.jasper(本来想是test_chart.jasper后来发现创建时候少打了一个字母)是iReport预览编译之后生成的,在你的创建目录中找得到

代码很简单,关键的几个函数:

JasperReport report= (JasperReport)JRLoader.loadObject(file_path);
JasperPrint print=JasperFillManager.fillReport(report, null, con);
 JRPdfExporter exporter = new JRPdfExporter(); 
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream); 
这几个函数在之前的文章中也提到过,所以不再啰嗦。
特别注意:要将jasperreport的lib文件最好是都放到web项目的WEB-INF/lib目录下,生的报错
如果需要源码,留邮箱,希望能共同探讨

文档

iReport连接Mysql创建图表报表

iReport连接Mysql创建图表报表:列举一下需要的资源: 1、mySql数据库安装好的 2、iReport+jasperreport配置好 3、我用的是Myeclipse,MySQL的驱动jar包不要忘记 第一部分:创建数据库连接 package com.mySqlsource;import java.sql.Connection;public
推荐度:
标签: 创建 链接 连接
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top