我使用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");
}
但是当我运行此代码时,它会出现一个空窗口, 请给予支持
答案 0 :(得分:0)
如果我正确理解了您的问题,那么您将返回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;
}
}