Reputation: 364
Why do I have these error? what does it mean? I only want to display all the data on my SQL DB.
run:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javaapplication25.SearchPatient.<init>(SearchPatient.java:26)
at javaapplication25.SearchPatient$2.run(SearchPatient.java:146)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Here is the codes that I used, don't know how to fix it because I'm not good enough in programming a Java Apps. , can anyone help me here? :
package javaapplication25;
/**
*
* @author cleanfuel
*/
import java.sql.*;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
public class SearchPatient extends javax.swing.JFrame {
/**
* Creates new form SearchPatient
*/
public SearchPatient() throws SQLException {
initComponents();
Statement stmt = null;
ResultSet rs = stmt.executeQuery("SELECT * FROM dbo.Patients");
ResultSetMetaData rsmetadata = rs.getMetaData();
int columns = rsmetadata.getColumnCount();
DefaultTableModel dtm = new DefaultTableModel();
Vector columns_vector = new Vector();
Vector rows_vector = new Vector();
for (int i=1; i< columns; i++){
columns_vector.addElement(rsmetadata.getColumnName(i));
}
dtm.setColumnIdentifiers(columns_vector);
while (rs.next()){
rows_vector = new Vector();
for (int j=1; j<columns; j++){
rows_vector.addElement(rs.getString(j));
}
dtm.addRow(rows_vector);
}
tblPatients.setModel(dtm);
}
@SuppressWarnings("unchecked")
Connection connection;
private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
connection = Main.ConnectDatabase();
}
Upvotes: 1
Views: 354
Reputation: 347334
You have these two lines, one after the other
Statement stmt = null;
ResultSet rs = stmt.executeQuery("SELECT * FROM dbo.Patients");
You've not initialised the stmt
object, so it null
, nothing, natta
Basically, it's like trying to turn on the TV before you've plugged it in, it's not likely to work
Take a look at JDBC Data Access for more details, but essentially, you need to establish a connection to a database and then use that connection to create the Statement object, then you can query it.
Upvotes: 2