簡體   English   中英

從兩個不同的mysql表中顯示JTextfield中的數據

[英]Displaying data in JTextfield from two different mysql tables

歡呼大家,初學者在這里!

我目前正在開發一個Java應用程序來跟蹤倉庫中的庫存。 這一切都在localhost上,直到它完成。 我在MySQL數據庫中創建了兩個表:一個表顯示了文章代碼,位置和數量(VOORRAADSYSTEEM); 另一個表顯示了文章代碼和描述(STAMDATA)。

在我的GUI中,我有一個JTable從VOORRAADSYSTEEM加載數據,而mouseclickevent(getSelectedRow)在相應的JTextFields中顯示數據(到目前為止一直很好)。 唯一沒有顯示的字段是描述字段(應該從STAMDATA表中讀取)。

我已經嘗試為該程序的這個特定部分創建一個方法。 該方法使用對第一個表的內部聯接對第二個表運行查詢。 這是下面的代碼。

 private void LoadDescription() {
        try {
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ABEL?zeroDateTimeBehavior=convertToNull", "root", "");
            String sql = "SELECT DESCRIPTION FROM VOORRAADSYSTEEM JOIN STAMDATA ON ARTICLECODE = ARTICLENUMBER WHERE ARTICLECODE="+jComboBox1.getSelectedItem();
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
            pst.setString(2, sql);
            descriptionTxt.setText(rs.getString(sql));
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

此刻我不確定如何解決這個問題。 我也打算嘗試使用外鍵。 任何幫助,將不勝感激。

有更好的方法來處理你想做的事情。 例如,通過在公共列(ARTICLENUMBER和ARTICLECODE)上連接表格然后顯示它,您可以通過一個查詢獲得所需的所有信息。

現在它看起來/聽起來像你可能試圖通過兩個查詢獲得所有信息。

但是,您的加載描述方法存在一些錯誤:

private void LoadDescription() {
    try {
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ABEL?zeroDateTimeBehavior=convertToNull", "root", "");
        String sql = "SELECT DESCRIPTION FROM VOORRAADSYSTEEM JOIN STAMDATA ON ARTICLECODE = ARTICLENUMBER WHERE ARTICLECODE="+jComboBox1.getSelectedItem();
        ResultSet results = conn.createStatment().executeQuery(sql);

        if(results.next()) //make sure something was returned to avoid null pointer exception
            descriptionTxt.setText(rs.getString("DESCRIPTION"));
        else
            JOptionPane.showMessageDialog(null, "no results returned");
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}

這應該對你有好處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM