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

标签 java sql netbeans

大家好,初学者!

我目前正在开发一个 Java 应用程序来跟踪我们仓库中的库存。一切都在本地主机上,直到完成。我在MySQL数据库中创建了两张表:一张显示商品代码、位置和数量(VOORRAADSYSTEEM);一张显示商品代码、位置和数量(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);
        }
    }

目前我不太确定如何解决这个问题。我还将尝试使用外键。任何帮助将不胜感激。

最佳答案

有更好的方法来处理您想做的事情。例如,您可以通过在公共(public)列(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);
    }
}

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

关于java - 在 JTextfield 中显示来自两个不同 mysql 表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56549440/

相关文章:

java - 有没有一种简单的方法可以判断 Java 项目是从 NetBeans 还是 Eclipse 编写的?

java - Java中方法参数的线程安全

java - 如何删除名称为 bin$ 的文件

MySQL:无法从特定分区中选择记录?

sql - 为给定月份生成一系列周间隔

c++ - Netbeans 7.3 构建主机 c/cpp

java - 如何用java中的OOP设计一个RPG类系统?

java - 使用 java Stream api 更新对象的嵌套列表

sql - GUID 字段的唯一约束是否会导致性能损失

java - 无法启动应用程序