[英]How to preview jasper report using java?
我已经使用IReport为库存控制创建了一个报告。然后我找到了一个预览报告的代码,这是该代码,
package Report;
import com.mysql.jdbc.Connection;
import java.awt.Container;
import java.sql.Statement;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.swing.JRViewer;
/**
*
* @author Hasindu
*/
public class ReportView extends JFrame
{
public ReportView(String fileName)
{
this(fileName, null);
}
public ReportView(String fileName, HashMap para)
{
super("ABC Solutions Employee/Project Management System (Report Viewer)");
try {
DB dba=new DB();
Connection con=DB.getConnection();
try
{
JasperPrint print = JasperFillManager.fillReport(fileName, para,con);
JRViewer viewer = new JRViewer(print);
Container c = getContentPane();
c.add(viewer);
}
catch (JRException j){
j.printStackTrace();
}
setBounds(10, 10, 900, 700);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
} catch (Exception ex) {
Logger.getLogger(ReportView.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
但是我的数据库连接代码正在返回一条语句,这是我的数据库连接代码,
package Report;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
public class DB {
public static Statement getConnection()throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/report", "root", "123");
Statement st=con.createStatement();
return st;
}
}
现在我有两个问题,
我通过创建此数据库连接代码来测试报告预览代码,
public static Connection getCon()throws Exception{ Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/report", "root", "123"); }
但是当我运行此代码时,它显示为空窗口,请提供支持
如果我正确理解了您的问题,则返回的是Statement
但它需要Connection
不要创建statement
创建与您的数据库的connection
,然后像下面的代码示例一样返回该connection
。
在reportview
类中
DB dba=new DB();
Connection con=DB.getCon();
db.class
package Report;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
public class DB {
public static Connection getCon() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/report", "root", "123");
return con;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.