1. 程式人生 > >Jasperreports+jaspersoft studio學習教程(四)- JDBC嚮導作為資料來源填充資料

Jasperreports+jaspersoft studio學習教程(四)- JDBC嚮導作為資料來源填充資料

4.1 在studio工具中可以直接連線資料庫,利用sql語句檢索。建立資料庫,並建表

本教程使用mysql5.5+SQLyog工具,若沒有安裝,請百度自行安裝,建立DemoReport資料庫,並將user_tab表,注入資料如下:


4.2 在studio工具中新建JDBC資料來源


然後Next ,選擇 Database JDBC Connection.




點選Test 顯示 Successful! ,然後Finish!

4.3 新建報表模板

4.3.1 新建報表模板DemoReport3.jrxml,只保留Title Band 和 Detail Band.



4.3.2 模板右鍵 -> Dataset and QueryDialog


點選OK 後,在outline中生成Field.


4.3.3 將id,user_name等拖入到 Detail 1 Band中設計模板如下:



點選preview ,顯示如下:



4.4 在java程式中是用JDBC資料來源

4.4.1 在JasperWeb專案中新建一個sevlet,加入mysql-connector-java-5.1.40-bin.jar依賴,並且將jrxml模板檔案編譯為jasper檔案放入專案中。



4.4.2 JasperServlet2 的doGet內容:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		Map<String,Object> parameters = new HashMap<String,Object>(16);
		String jasperPath = request.getServletContext().getRealPath("/")+"/jasper/DemoReport3.jasper";
		PrintWriter out = null;
		try {
            String url = "jdbc:mysql://localhost/demoreport";
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection(url, "root", "123456");
            
            //通過JasperFillManager工具進行填充報表,生成JasperPring檔案
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperPath, parameters, conn);
            
            //將html輸出到瀏覽器上
            JRHtmlExporter exporter = new JRHtmlExporter();
            response.setCharacterEncoding("UTF-8");
    		out = response.getWriter();
    		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
    		exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
    		exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
    		exporter.exportReport();
    		
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
        	out.flush();
        	out.close();
        }
	
	}


4.4.3 啟動tomcat,並訪問: