[英]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的行。因為rs為null
改變這條線
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.