首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JTextfield中显示来自两个不同mysql表的数据

在JTextfield中显示来自两个不同mysql表的数据
EN

Stack Overflow用户
提问于 2019-06-12 02:05:39
回答 1查看 43关注 0票数 0

初学者,祝大家干杯!

我目前正在开发一个Java应用程序来跟踪我们仓库中的库存。在完成之前,它都在本地主机上。我在MySQL数据库中创建了两个表:一个表显示商品代码、位置和数量(VOORRAADSYSTEEM);另一个表显示商品代码和描述(STAMDATA)。

在我的图形用户界面中,我有一个从VOORRAADSYSTEEM加载数据的JTable,鼠标点击事件(getSelectedRow)在相应的JTextFields中显示数据(到目前为止还好)。唯一未显示的字段是description字段(应从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);
        }
    }

此时此刻,我不是很确定该如何处理这个问题。我还将尝试使用外键。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-06-12 03:13:35

有更好的方法来处理你想要做的事情。例如,您可以通过连接一个公共列(ARTICLENUMBER和ARTICLECODE)上的表,通过一个查询获得所需的所有信息,然后显示它。

现在看起来/听起来你可能试图通过两个查询来获取所有信息。

但是,您的load description方法有一些错误:

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);
    }
}

这对你来说应该会更好一些。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56549440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档