2015-08-19 57 views
-3

我有下面的代码执行查询,无法在鼠标事件

private void trans_tabMouseClicked(java.awt.event.MouseEvent evt) {          
     try{ 

     con = DriverManager.getConnection("jdbc:mysql://localhost:3306/online_store","poornima","mit1234"); 
      if(con != null){ 

       String query = "SELECT * FROM bill"; 

       rs = stmt.executeQuery(query); 
       System.out.println("fffgg"); 
       ResultSetMetaData rsmt = rs.getMetaData(); 
       int c = rsmt.getColumnCount(); 

       Vector row = new Vector(); 
       DefaultTableModel model = (DefaultTableModel)expense_table.getModel(); 
       while(rs.next()) 
       { 
        row = new Vector(c); 
        for(int i = 1; i <= c; i++) 
        { 
         row.add(rs.getString(i)); 

        } 
       model.addRow(row); 
       } 

      } 

}catch(Exception ex){ 
    System.out.println(ex); 
} 
    } 
在上面的代码查询

不执行。解雇null pointer exceptionrs = stmt.executeQuery(query);线。我尝试了几个小时,但我无法弄清楚问题所在。请帮忙。

+0

其中'stmt'初始化?最有可能你已经初始化为null – silentprogrammer

+0

在类的开头 –

+1

因为'stmt'为空,请使用'stmt = con.createStatement();' –

回答

2

因为stmt为空。

使用本

String query = "SELECT * FROM bill"; 
stmt = con.createStatement(); 
rs = stmt.executeQuery(query); 

,而不是这个

String query = "SELECT * FROM bill"; 
rs = stmt.executeQuery(query); 

参考this

+0

是的它的工作很好,谢谢,但它在开始时增加了几行空行。在DB中,顶部没有空行。为什么会发生? –