Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要Java JTables和MySQL的帮助吗_Java_Mysql_Swing_Jtable - Fatal编程技术网

需要Java JTables和MySQL的帮助吗

需要Java JTables和MySQL的帮助吗,java,mysql,swing,jtable,Java,Mysql,Swing,Jtable,目前我正在从事一个JavaSwing项目,我的UI中有一个jTable。它的工作原理类似于Excel工作表,用户可以在其中编辑多列和多行。编辑后,有一个按钮用于将数据保存到数据库中。我在谷歌上搜索如何做的代码。但还是找不到合适的 有没有人提出过类似的问题并找到了解决方案,或者有没有人告诉我怎么做。最好是代码帮助 谢谢您可以通过两种方式完成: 在数据库中使用循环进行迭代,并使用getValueAt方法获取每个值,并将它们分配给变量。然后以正常方式将它们添加到数据库中 或者,您可以从数据库创建一个对

目前我正在从事一个JavaSwing项目,我的UI中有一个jTable。它的工作原理类似于Excel工作表,用户可以在其中编辑多列和多行。编辑后,有一个按钮用于将数据保存到数据库中。我在谷歌上搜索如何做的代码。但还是找不到合适的

有没有人提出过类似的问题并找到了解决方案,或者有没有人告诉我怎么做。最好是代码帮助


谢谢

您可以通过两种方式完成:

在数据库中使用循环进行迭代,并使用getValueAt方法获取每个值,并将它们分配给变量。然后以正常方式将它们添加到数据库中

或者,您可以从数据库创建一个对象,并将其保存在MySQL BLOB中


我认为第二种方法更简单、更有效。有关如何操作,请尝试通过谷歌搜索MySQL blob。

您需要手动跟踪已更改的行。您可以使用来帮助您完成此操作。每次值更改时都会通知您


然后,您需要跟踪包含更改的行,可能需要将行号保留在一个集合中。然后,单击“保存”按钮时,您可以遍历集合以获取行,对于每一行,您可以获取任何可编辑列的数据,然后一次更新一行数据库。

我可以想出解决方案。我就是这样做的

defaultGrnTbl = (DefaultTableModel) Dashboard.grnTbl.getModel();
            int columns = Dashboard.grnTbl.getColumnCount();
            int rows = Dashboard.grnTbl.getRowCount();
            String rowData = "";
            for (int i = 0; i < rows; i++) {
                for (int j = 0; j < columns; j++) {
                    rowData += Dashboard.grnTbl.getValueAt(i, j).toString() + ",";
                }
                saveGrnItem(rowData, rows, grnRecievedMark);
                rowData = "";
            }

谢谢

您可能想先读一读。那么有什么问题呢?您知道如何将ActionListener添加到按钮吗?您知道如何使用getValueAt从JTable中获取数据吗。。。方法您知道如何创建SQL语句来更新数据库表吗?把这三个步骤放在一起,你就有了一个解决方案。事实上,我知道如何添加到数据库中,但我不知道如何检索多个列和行,这些列和行经过编辑后被发送到数据库中,但这将是检索数据和更新数据时的一个问题,对吗?第一种方法是可行的,但是当涉及到大约5列10行的表时,这不是一种有效的方法。是的,第一种方法会占用大量内存。但是在第二种方法中,您可以创建一个模态类来分配表,并在该类中提供setter/getter方法。因此,在检索数据时,可以将其强制转换为该类的对象,并使用该方法执行操作工作。