当我尝试将值检索到 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 的原因。希望这能回答您的问题。
关于Java 与 MySql 数据库的连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27793092/