如何使用4层将数据从数据库插入JTable



以下是我遇到的

UI:

       jlbl.setText("Purchase ID: ");
   String counterV = String.valueOf(purc.getCounter());
   jTF3.setText("P000"+counterV);
   JPanel p5 = new JPanel();
    p5.add(jlbl);
   p5.add(jTF3);
  else if(e.getSource() == jbtRetrieve)
        {
            String pID = jTF3.getText();
        Purchase purchase = purcControl.selectRecord(pID);
        if (purchase != null) {
            String pdCountStr = purchase.getPurchaseDetailsID();
            String pdCountStr2 = pdCountStr.substring(2,6);
            int pdCount = Integer.parseInt(pdCountStr2);
            for(int g = 0; g<pdCount;g++)
            tableModel.addRow(new Object[]{ purchase.getPurchaseDetailsID(),purchase.getStockID(),purchase.getPrice(),purchase.getQuantity()});
        }
        else {
           JOptionPane.showMessageDialog(null, "No such purchase ID.", "RECORD NOT FOUND", JOptionPane.ERROR_MESSAGE);

        }
        }

控制:

    public Purchase selectRecord(String pID){
    return purcDA.getRecord(pID);
}

DA:

 public Purchase getRecord(String pID){
    String queryStr = "SELECT * FROM " + tableName + " WHERE PurchaseID = ?";
    Purchase purchase = null;
    //MainPurchasingFrame purc = new MainPurchasingFrame();
    try{
        stmt = conn.prepareStatement(queryStr);
        stmt.setString(1,pID);
        ResultSet rs = stmt.executeQuery();

     if(rs.next()){
        purchase = new Purchase(rs.getString("purchaseDetailsID"),pID, ,rs.getString("stockID"),rs.getDouble("price"),rs.getInt("quantity"));
     }
    }   catch (SQLException ex){
        JOptionPane.showMessageDialog(null,ex.getMessage(),"ERROR",JOptionPane.ERROR_MESSAGE);
    }
    return purchase;
}

域:

 public String getPurchaseDetailsID(){
    return purchaseDetailsID ;
}
public double getPrice(){
    return price;
}
public String getStockID(){
    return stockID;
}
public int getQuantity(){
    return quantity;
}
public void setPurchaseDetailsID(String r){
    this.purchaseDetailsID = r ;
}
public void setPrice(double p){
    this.price = p;
}
public void setStockID(String s){
    this.stockID = s;
}
public void setQuantity(int q){
    this.quantity = q;
}

我如何通过这样的4层将数据输入JTable?我知道当一切都设置为一个时该怎么做,但我面临Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException每次我试图检索数据时。我正在使用netbean。

purcControl = new MaintainPurchasingControl();

初始化purcControl,这样就不会发生NPE。

最新更新