-1

データベースからJtableにデータを挿入しようとしましたが、私のコードがあります:

private Vector <Vector<String>> data;
private Vector<String> header;
table.setModel(new javax.swing.table.DefaultTableModel(
data,header     
));

GtFromDb db=new GtFromDb();
data=db.getClient();

header=new Vector<String>();
header.add("Imones pavadinimas");
header.add("vardas");
header.add("pavarde");
header.add("salis");
header.add("Adresas");
header.add("telefonas");

public Vector getClient() 
{
    Vector <Vector<String>> clientVector=new Vector<Vector<String>>();  
    try
    {
         PreparedStatement zadanie = connect.prepareStatement("SELECT * FROM Clients");
         dane = zadanie.executeQuery();
         while(dane.next()) {
             Vector <String> client=new Vector<String>();
             String imonesPav=dane.getString("Imones_pavadinimas");
             String vardas = dane.getString("Vardas");
             String pavarde = dane.getString("Pavarde");
             String salis = dane.getString("Salis");
             String adresas=dane.getString("Adresas");
             String telefonas = dane.getString("Telefonas");
             if (imonesPav != null) {
                 imonesPav = imonesPav.trim();
                 client.add(imonesPav);
             }
             if (vardas != null) {
                 vardas = vardas.trim();
                 client.add(vardas);
             }
             if (pavarde != null) {
                 pavarde = pavarde.trim();
                 client.add(pavarde);
             }
             if (salis != null) {
                 salis = salis.trim();
                 client.add(salis);
             }
             if (adresas != null) {
                 adresas = adresas.trim();
                 client.add(adresas);
             }
             if (telefonas != null) {
                 telefonas = telefonas.trim();
                 client.add(telefonas);
             }
        }
        zadanie.close();
    }
    catch(SQLException e){}
        return clientVector;    
    }

エラーが発生します:

java.lang.NullPointerException
at test$GtFromDb.getClient(test.java:108)
at test.<init>(test.java:49)
at test.main(test.java:24)

問題はどこですか?

4

2 に答える 2

1

追加するのを忘れていました...

1)内側のループclient=new Vector<String>();DefaultTableModelwhile(dane.next()) {...}

2)public Vector getClient()初期化する必要があり、null を返す

3) に変更、return ステートメントをpublic Vector getClient()削除public void getClient()

4)ブロックPreparedStatement zadanieで閉じる必要がありますfinallytry- catch - finally

5)dane = zadanie.executeQuery();結果セットのように見え、ブロックPreparedStatement zadanieで閉じる必要があるのと同じfinally

6)JTableそしてVector保持することができますnull value

DbTable7) からまでのデータのみを表示したい場合は、JTableを探してください。このフォーラムでも検索できます。 ResultsetTableModelTableFromDatabase

于 2011-07-18T09:35:32.650 に答える