本站首页    管理页面    写新日志    退出

The Neurotic Fishbowl

[Java报表软件—技术知识]数据库读取web报表
FineReport——报表技术领跑者 发表于 2012/11/1 11:30:14

  若您是政府部门等,您制作的模板cpt文件放在硬盘中,如果硬盘遇上意外,导致cpt文件丢失,后果会很严重。为了降低这个风险,我们可将确认无误的cpt文件全部保存在数据库中(cpt文件即二进制数据),这样您若是硬盘遇上意外导致cpt文件丢失,也可以在查看时再将这些cpt文件(即二进制数据)从数据库中提取,从而避免发生重大损失。   如下可查看,这里是已经将已有的cpt模板保存于oracle数据库中,点击我们的报表数据集,数据库查询|数据库数据集,输入SELECT * FROM REPORT,预览可看到      那么,如何将cpt模板保存入库呢?以下我们详细介绍。 1. 实现步骤 1.1 数据库表准备   数据库中先建好一张report的表,表中包含两个字段 cptname(字符串型)和 cpt(Blob类型)。 1.2 编写保存模板程序 package com.fr.demo;   import java.io.File;   import java.io.FileInputStream;   import java.io.InputStream;   import java.sql.Connection;   import java.sql.DriverManager;   import java.sql.PreparedStatement;   import com.fr.base.FRContext;   import com.fr.base.dav.Env;   public class SaveReportToDatabase {       public static void main(String[] args) {           SaveReport();       }       private static void SaveReport() {           try {               // 连接数据库               String driver = "oracle.jdbc.driver.OracleDriver";               String url = "jdbc:oracle:thin:@192.168.100.169:1521:orcl10g";               String user = "temp";               String pass = "temp123";               Class.forName(driver);               Connection conn = DriverManager.getConnection(url, user, pass);               PreparedStatement presmt = conn                       .prepareStatement("insert into report values(?,?)");               // 读进需要保存入库的模板文件               Env oldEnv = FRContext.getCurrentEnv();               String envPath = oldEnv.getPath();               File cptfile = new File(envPath                       + "\\reportlets\\gettingstarted.cpt");               int lens = (int) cptfile.length();               InputStream ins = new FileInputStream(cptfile);               // 将模板保存入库               presmt.setString(1, "gettingstarted.cpt"); // 第一个字段存放模板相对路径               presmt.setBinaryStream(2, ins, lens); // 第二个字段存放模板文件的二进制流               presmt.execute();               conn.commit();               presmt.close();               conn.close();           } catch (Exception e) {               e.printStackTrace();           }       }   }   注意:该程序中使用了JDBC连接数据库,您需要在编写代码前先将对应数据库的驱动包加载进project中。

阅读全文(1115) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



The Neurotic Fishbowl

.: 公告

本博客提供详细的java报表软件的制作过程,发布java报表软件的版本更新信息,并适时对国内主流报表软件进行功能比较。


Bloginess

«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31

.: 我的分类(专题)

首页(357)
Java报表软件—制作笔记(54)
Java报表软件—功能比较(43)
Java报表软件—使用心得(21)
Java报表软件—行业动态(54)
Java报表软件—新闻资讯(48)
Java报表软件—技术知识(49)
Java报表软件—问题解析(2)


In the Bowl

.: 最新日志

如何对报表的参数控件赋值
java报表工具FineReport常见
报表怎么做 FineReport连接池原
报表怎么做FineReport数据连接之
报表模板之报表设计
报表模板之报表设计


.: 最新回复

回复:报表参数
好好学习,
好好学习,天天向上。买双 air jor
回复:理解FineReport缓存系列2
回复:理解FineReport缓存系列2


The Fishkeeper
blog名称:Java报表软件
日志总数:357
评论数量:69
留言数量:0
访问次数:1208795
建立时间:2006年4月16日



Text Me

.: 留言板

签写新留言

需要你的帮助


Other Fish in the Sea

.: 链接

报表开发工具  html5图表java报表开发工具




站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144766227 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号