2017-05-17 5 views
0

Ich habe eine andere Klasse, in der ein Benutzer ein Resort buchen, indem Sie nur die ID des Resorts eingeben. Dann öffnet sich ein neuer JFrame (ConfirmBooking), in dem der Name des Resorts und der Preis pro Nacht auf den Etiketten angezeigt werden. Aber ich bekomme anscheinend einen Fehler, wenn ich versuche, den Namen und den Preis des Resorts aus der SQL-Datenbank zu laden.Kann keine SQL-Daten auf Etiketten anzeigen

Fehler erhalte ich: Exception in thread "AWT-Eventqueue-0" java.lang.NullPointerException

public class ConfirmBooking extends javax.swing.JFrame 

{ 

    Connection conn = null; 
    Statement stat = null; 
    ResultSet res = null; 
    Booking B = new Booking(); 



public ConfirmBooking() 
{ 
    initComponents(); 

    String sql = "SELECT RESORT_NAME, COST_PER_NIGHT_ZAR FROM LouwDataBase.Resorts WHERE ID = "+ 2; 
     try (PreparedStatement pstmt = conn.prepareStatement(sql)) 
     { 
       try (ResultSet rs = pstmt.executeQuery()) 
       { 
        if (rs.next()) 
        { 
        String Name = rs.getString("RESORT_NAME"); 
        double Price = rs.getDouble("COST_PER_NIGHT_ZAR"); 
        String Rands = Double.toString(Price); 
        ResortName.setText(Name); 
        ResortPrice.setText("R"+Rands); 
        } 
       } 
     } 
     catch (SQLException ex) 
     { 
      Logger.getLogger(Booking.class.getName()).log(Level.SEVERE, null, ex); 
     } 
} 
+1

Mögliches Duplikat von [Was ist eine NullPointerException und wie behebe ich sie?] (Http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i) -fix-it) – David

+0

Du initialisierst niemals die 'conn'-Variable. Auch das Ausführen von Datenbankoperationen (oder anderen komplexen E/A) in einem Konstruktor ist wahrscheinlich nicht die beste Idee. – David

Antwort

0
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
    static final String DB_URL = "jdbc:mysql://localhost/EMP"; 

    // Database credentials 
    static final String USER = "username"; 
    static final String PASS = "password"; 

    public static void main(String[] args) { 
    Connection conn = null; 
    Statement stmt = null; 
    try{ 
     //STEP 2: Register JDBC driver 
     Class.forName("com.mysql.jdbc.Driver"); 

     //STEP 3: Open a connection 
     System.out.println("Connecting to database..."); 
     conn = DriverManager.getConnection(DB_URL,USER,PASS); 

Sie haben Ihre Verbindung zur Datenbank initialisieren

https://www.tutorialspoint.com/jdbc/jdbc-sample-code.htm

Verwandte Themen