-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>();DefaultTableModel内循环while(dane.next()) {...}

2)public Vector getClient()必须初始化返回null

3)更改public Vector getClient()public void getClient(),删除return语句

4)PreparedStatement zadanie必须在finally块中关闭try- catch - finally

5)dane = zadanie.executeQuery();看起来像结果集,并且PreparedStatement zadanie必须在finally块中关闭

6)JTable并且Vector可以持有null value

7)如果你只是想显示数据然后找DbTable,,你也可以在这个论坛上搜索 JTableResultsetTableModelTableFromDatabase

于 2011-07-18T09:35:32.650 回答
-1

试试这些代码结构但在你的:

DefaultTableModel dtm = new DefaultTableModel();
dtm.setColumnCount(2);
dtm.setRowCount(2);
dtm.setValueAt("Imones pavadinimas", 1, 1);
dtm.setValueAt("Imones vardas", 2, 1);
dtm.setValueAt("Pavarde", 1, 2);
dtm.setValueAt("Salis", 2, 2);
 ...
jTable1.setModel(dtm);
于 2017-11-05T11:23:20.760 回答