2015-01-06 2 views
0

Когда я пытаюсь получить значения в JTable, он говорит «cast connectdb to connection», на линии con=Connect.ConnectDB(). Но я объявил свой класс Connect без каких-либо ошибок и умею вставлять значения из другой формы. Это мой код:Проблема с подключением Java с MySql databse

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; 
    }  
    } 
} 
+1

show 'Connect' class –

+0

' (Connection) Connect.ConnectDB(); 'работает? –

+0

Нет, его ошибка «исключение нулевого указателя» –

ответ

0

попробовать 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); 
    } 
} 
+0

извините, не работает –

+0

oh..sorry ... :-) –

+0

jTable1.setModel (DbUtils.resultSetToTableModel (rs)); в этой строке, откуда «rs»? –

2
jTable1.setModel(DbUtils.resultSetToTableModel(rs)); 

Это линия вы получаете NullPointerException от .. потому что rs - нулевое изменение

эта линия

pst.execute(); 

в

rs = pst.executeQuery(); 

Вы не присвоили результат от ExecuteQuery() к опорному Resultset !! и поскольку вы передаете пустую ссылку, почему вы получаете NPE. Надеюсь, что это ответ на ваш вопрос.

Смежные вопросы