日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ireport mysql_iReport连接Mysql创建图表报表

發布時間:2023/12/18 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ireport mysql_iReport连接Mysql创建图表报表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

列舉一下需要的資源: 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目錄下,生的報錯

如果需要源碼,留郵箱,希望能共同探討

本文原創發布php中文網,轉載請注明出處,感謝您的尊重!

總結

以上是生活随笔為你收集整理的ireport mysql_iReport连接Mysql创建图表报表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。