java - 根据 JTable 单元格更改更新数据库

标签 java jtable

我有一个窗口,根据表中的数据显示我的数据,但问题是,当我更改并单击“保存”按钮时,我收到错误:错误:没有为参数 1 指定值。

但我不想只更改最新的列

enregistrer.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e) 
                {
                    int row = table.getSelectedRow();
                    int col = table.getSelectedColumn();
                    String sql = null;
                      try {
                        if(col==4)
                            sql = "UPDATE impaye" + "SET Impayé = ?" + "WHERE ID = ? "+ row;


                            preStat =(PreparedStatement) connexion.prepareStatement(sql);
                            preStat.setObject(1, table.getValueAt(row, col));
                            preStat.executeUpdate();
                                preStat.close();

                      } catch (SQLException insertException) {
                           System.out.println("Error:"+insertException.getMessage());
                      }

                    }

                  });

最佳答案

But I do not want to change all columns just the latest

那么您需要更改 SQL。当前您的 SQL 更新了所有 4 列。

如果你只想更新单个列,那么你需要4条SQL语句。您使用的语句将基于已更改的列的索引。

类似于:

String sql = null;

if (col == 0)
    sql = "UPDATE impaye SET Date = ? " + row;
else if (col == 1)
    sql = "UPDATE impaye SET Débiteur = ? " + row);
else if
    ...

preStat =(PreparedStatement) connexion.prepareStatement(sql);
preStat.setObject(1, table.getValueAt(row, col));
preStat.executeUpdate();

我认为您的 SQL 中还需要一个“where”子句。我认为你不能只指定行号(但我对 SQL 不太了解)。

关于java - 根据 JTable 单元格更改更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33584969/

相关文章:

java - 将 HTML 和 CSS 样式应用于 Java Swing 组件

java - 如何防止两个事件被触发?

java xpath XML 解析

java - 参数化 JUnit 测试惰性集合

java - 向图像添加 Action 监听器

java - toString:什么时候使用?

java - 将 JScrollPane 组件添加到 JTable 列

java - 将 csv 导入到 JTable

java - 非常大的 JTable、RowFilter 和额外的负载

java - 从 TCP 套接字读取的最有效方法