簡體   English   中英

MySql數據庫的Java連接問題

[英]Java connectivity issue with MySql database

當我嘗試將值檢索到JTable時,在con=Connect.ConnectDB()行上顯示“將connectdb轉換為連接”。 但是我已經聲明了Connect類,沒有任何錯誤,並且能夠成功插入其他表單中的值。 這是我的代碼:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
  try{
    con= Connect.ConnectDB();
    String sql="select * from pharmacy";
    pst = con.prepareStatement(sql);
    pst.execute();
    jTable1.setModel(DbUtils.resultSetToTableModel(rs));
    JOptionPane.showMessageDialog(this,"Succesfully stored","User",JOptionPane.INFORMATION_MESSAGE);

  } catch(SQLException ex){
    JOptionPane.showMessageDialog(this,ex);
  }
}  

這是我的Connect類:

public class Connect {
  Connection con=null;

  public static Connection ConnectDB(){
    try{

      Class.forName("com.mysql.jdbc.Driver");
      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/hms_db1","root","root");
      return con;

    }catch(ClassNotFoundException | SQLException e){
      JOptionPane.showMessageDialog(null, e);
      return null;
    }      
  }
}
jTable1.setModel(DbUtils.resultSetToTableModel(rs));

這是您從中獲取NullPointerException的行。因為rsnull

改變這條線

pst.execute();

rs = pst.executeQuery();

您尚未將來自executeQuery()的結果分配給resultSet引用! 並且由於傳遞的是空引用,這就是為什么要獲得NPE的原因。 希望這能回答您的問題。

嘗試使用pst.executeQuery()代替pst.execute()

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try {
        con = Connect.ConnectDB();
        String sql = "select * from pharmacy";
        pst = con.prepareStatement(sql);
        pst.executeQuery();
        jTable1.setModel(DbUtils.resultSetToTableModel(rs));
        JOptionPane.showMessageDialog(this, "
            Succesfully stored" , "User", JOptionPane.INFORMATION_MESSAGE);
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(this, ex);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM