【问题标题】:Can not execute Query on Mouse Event无法对鼠标事件执行查询
【发布时间】:2015-08-19 10:38:11
【问题描述】:

我有以下代码,

 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);
}
    }  

在上面的代码中查询没有被执行。在rs = stmt.executeQuery(query); 行解雇null pointer exception。我尝试了几个小时,但我无法弄清楚问题出在哪里。请帮忙。

【问题讨论】:

  • stmt 在哪里初始化?很可能您已将其初始化为 null
  • 课程开始
  • 因为stmt为空,使用stmt = con.createStatement();
  • 无论您假设发生了什么,JVM 都会告诉您 stmt 为空。是时候找出原因了。
  • @Mani 深深感谢老兄。你让我开心!

标签: java mysql swing nullpointerexception


【解决方案1】:

因为stmt 为空。

使用这个

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

而不是这个

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

参考this

【讨论】:

  • 是的,它工作得很好,谢谢,但它在开头添加了几个空行。在 DB 中,顶部没有空行。为什么会这样?
猜你喜欢
  • 1970-01-01
  • 2016-01-27
  • 1970-01-01
  • 2019-05-15
  • 1970-01-01
  • 1970-01-01
  • 2016-08-30
  • 2015-10-06
相关资源
最近更新 更多