JComboBox Frage

Jetzt bekomme ich ich immer eine NullPointerException!
in der Zeile:
ResultSet data = stmt.executeQuery("SELECT `" + columnName + "` FROM `" + tableName + "`");

Ich weiß aber auch nicht warum ich übergebe ihm die zwei Strings und Rufe es in
der GUI Klasse auf!
Natürlich habe ich den DB-Layer eingebunden und mich zur datenbank verbunden!

Happymaker
 
Hast du schon Werte in der Datenbank gespeichert?

Code:
import java.sql.*;
import javax.swing.*;

public JComboBox fillTitleComboBox(String tableName, String columnName) {
    try {
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost/" + DB_NAME, DB_USER, DB_PASS);
        Statement stmt = con.createStatement();

        ResultSet data = stmt.executeQuery("SELECT `" + columnName + "` FROM `" + tableName + "`");

        JComboBox combo = new JComboBox();

        if (data != null) {
            while (data.next()) {
                combo.addItem(data.getString(1));
            }
        }

        return combo;
    }
    catch (SQLException e) {
        e.printStackTrace();
        return new JComboBox();
    }
}
 
Zuletzt bearbeitet:
Das Statement-Object scheint nicht initialisiert zu sein. Du musst sicherstellen, dass das Statement vor dem Aufruf der fillTitleComboBox()-Methode initialisiert wird.
 
/*
* Created on 01.09.2004
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/

/**
* @author Superuser
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/

import java.sql.*;
import java.util.*;
import javax.swing.*;



public class DBConnect {

String host="";
String port="";
String database="";
String username="";
String password="";
String sql="";
String select="";
Connection con;
Statement stmt;
ResultSet rse;
LinkedList list;
String dbfield = "";
BenutzerStamm stamm;

public DBConnect(){

}

protected void connect(String host, String port, String database, String username, String password){
try{
Class.forName("org.gjt.mm.mysql.Driver");
}
catch (ClassNotFoundException ex){
System.out.println("Fehler beim Laden des Treibers! " + ex );
}
this.host=host;
this.port=port;
this.database=database;
this.username=username;
this.password=password;

try{
sql = ("jdbc:mysql://"+host+":"+port+"/"+database+"");
con = DriverManager.getConnection(sql,username,password);
System.out.println("Connect erfolgreich");
}
catch(SQLException e){
System.out.println("Fehler!" + e );
}
}

protected void disconnect(){
try{
con.close();
System.out.println("Disconnect erfolgreich!");
}
catch(SQLException e){
System.out.println("Fehler!" + e );
}
}

protected ResultSet select(String select){
this.select = select;

try{
stmt = con.createStatement();
if (select.equals("select"))
{
System.out.println("Keine gültige Select - Anweisung");
}
else
{
ResultSet rs= stmt.executeQuery(select);
return rs;
}
}
catch(SQLException e){
System.out.println("Fehler!" + e );
}
return null;
}

protected void printresult(ResultSet rs){
if (con != null){
try {
ResultSetMetaData md = rs.getMetaData();
while (rs.next()) {
for (int i = 0; i < md.getColumnCount(); i++) {
System.out.print(rs.getString(i + 1) + " ");
}
System.out.println();
}
}
catch (SQLException sql) {
System.err.println("Couldn't retrieve data! " + sql);
sql.printStackTrace();
}
}

}

public LinkedList getMitarbeiterInList(ResultSet data) {
LinkedList returnList = new LinkedList();

try {
ResultSetMetaData metaData = data.getMetaData();
int columns = metaData.getColumnCount();

while (data.next() && !data.wasNull()) {

BenutzerStamm mitarbeiter = new BenutzerStamm();

for (int i = 1; i <= columns; i++) {
switch (i) {
case 1: mitarbeiter.setPersNr(data.getString("PersNr"));
break;
case 2: mitarbeiter.setVorname(data.getString("Vorname"));
break;
case 3: mitarbeiter.setNachname(data.getString("Nachname"));
break;
case 4: mitarbeiter.setNameZusatz(data.getString("Name_Zusatz"));
break;
case 5: mitarbeiter.setStrasse(data.getString("Strasse"));
break;
case 6: mitarbeiter.setHausNr(data.getString("HausNr"));
break;
case 7: mitarbeiter.setPlz(data.getString("PLZ"));
break;
case 8: mitarbeiter.setOrt(data.getString("Ort"));
break;
case 9: mitarbeiter.setMobil(data.getString("Mobil"));
break;
case 10: mitarbeiter.setTelefon(data.getString("Telefon"));
break;
case 11: mitarbeiter.setFax(data.getString("Fax"));
break;
case 12: mitarbeiter.setEmail(data.getString("Email"));
break;
case 13: mitarbeiter.setGebDatum(data.getDate("GebDatum"));
break;
case 14: mitarbeiter.setEintritt(data.getDate("Eintritt"));
break;
case 15: mitarbeiter.setAustritt(data.getDate("Austritt"));
break;
case 16: mitarbeiter.setBemerkung(data.getString("Bemerkung"));
break;
case 17: mitarbeiter.setVorlage(data.getBoolean("Vorlage"));
break;
}
}
returnList.add(mitarbeiter);
}
}
catch (SQLException e) {
e.printStackTrace();
}

return returnList;
}

public void printBenutzer(LinkedList list) {
for (int i = 0; i < list.size(); i++) {
BenutzerStamm mitarbeiter = (BenutzerStamm) list.get(i);
System.out.print(mitarbeiter.getPersNr()+ " ");
System.out.print(mitarbeiter.getVorname()+ " ");
System.out.print(mitarbeiter.getNachname()+ " ");
System.out.print(mitarbeiter.getNameZusatz()+ " ");
System.out.print(mitarbeiter.getStrasse()+ " ");
System.out.print(mitarbeiter.getHausNr()+ " ");
System.out.print(mitarbeiter.getPlz()+ " ");
System.out.print(mitarbeiter.getOrt()+ " ");
System.out.print(mitarbeiter.getMobil()+ " ");
System.out.print(mitarbeiter.getTelefon()+ " ");
System.out.print(mitarbeiter.getFax()+ " ");
System.out.print(mitarbeiter.getEmail()+ " ");
System.out.print(mitarbeiter.getGebDatum()+ " ");
System.out.print(mitarbeiter.getEintritt()+ " ");
System.out.print(mitarbeiter.getaustritt()+ " ");
System.out.print(mitarbeiter.getBemerkung()+ " ");
System.out.println(mitarbeiter.getVorlage()+ " ");

}
}


public JComboBox fillTitleComboBox() {
try {
ResultSet data = stmt.executeQuery("Select Anrede From Anrede");

JComboBox combo = new JComboBox();

if (data != null) {
while (data.next()) {
combo.addItem(data.getString(1));
}
}

return combo;
}
catch (SQLException e) {
e.printStackTrace();
return null;
}
}



public static void main (String[] args){
}

}

Das wäre meine DB-Layer klasse schau sie dir mal an! Ich hab schon keinen Plan mehr!
 
Original geschrieben von Happymaker
public JComboBox fillTitleComboBox() {
try {
ResultSet data = stmt.executeQuery("Select Anrede From Anrede");

JComboBox combo = new JComboBox();

if (data != null) {
while (data.next()) {
combo.addItem(data.getString(1));
}
}

return combo;
}
catch (SQLException e) {
e.printStackTrace();
return null;
}
}



public static void main (String[] args){
}

}

Hast du eine Tabelle die Anrede heißt und darin ein Feld mit dem selben Namen?

Wie heißt die Tabelle auf die du zugreifen möchtest und wie hast du das Feld benannt in dem die Anrede steht?

Die main Methode kannst du hier ruhig weglassen.
 
Zurück