Java JTable 一次将一个单元格保存到数据库中

标签 java sql sqlite sql-update jtable

我是 Java 新手,因此对于长期的 Java 程序员来说这可能是一个简单的问题。

无论如何,我的问题是使用JTable。我想要在该 JTable 中加载/保存数据。问题是我不确定如何以某种方式保存用户更改的单元格

我的点击事件如下所示:

@SuppressWarnings("serial")
class EditableTableModel extends AbstractTableModel {
     String[] columnTitles;
     Object[][] dataEntries;
     int rowCount;

     public void setValueAt(Object value, int row, int column) {
         //Any change to the table
         dataEntries[row][column] = value;
     }
}

每当我更改 jTable 中的任何单元格时,此函数都会正常启动。它还为我提供了该已编辑单元格的行号和列号,当然还有更改为的值。但我的问题是:

How would I go about saving this data into my database if its just a cell value at a time?

我的数据库结构如下所示(与 jTable 结构具有相同的布局/顺序):

ID  | Data_script | data_status | data_users | data_error | data_rundate | lastUserWhoMod
-------------------------------------------------------------------------------------------
1   | Inquiries   | Passed      | Bob        | No errors  | 01/20/2019   | Bob
2   | Reporting   | Passed      | Jenny      | No errors  | 01/20/2019   | Bob
3   | Background  | Failed      | Bob        | Lines 4,8  | 01/20/2019   | Jenny 
4   | Maintenance | Passed      | George     | No errors  | 01/20/2019   | Bob

举个例子,如果我将第一行第三列(即data_users)从Jenny更改为George,那么我将如何映射到数据库以便将其保存在正确的位置(行、列)?

最佳答案

还需要考虑 table_key(pk 假设 id)。

public void setValueAt(Object value, int row, int column) {
     Object obj_key = dataEntries[row][0]; //assume id
     //Any change to the table
     dataEntries[row][column] = value; 

     //obj_key mapped inside method from Object to int
     //get appropriate field_name from column index
     run_sql(obj_key, row, column) 

 }

原始更新查询

update table_name
set [computed_field_name] = column_new_value (dataEntries[row][column])
where id = obj_key

由于您预先知道了 col 对应的名称,因此还需要正确设置 field_name(如果 col=1 则 data_script ...等)

关于Java JTable 一次将一个单元格保存到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54350544/

相关文章:

mysql - 使用左连接的 SQL 查询从特定日期开始按降序获取行

java - MySQL 中的列应自动对插入的值进行哈希处理(使用 Hibernate 和 Java)

java - Spring Kafka - 在运行时订阅新主题

java - 具有 logback 条件的多个根记录器

mysql - 从每列中选择不同的值

php - 自动完成在 Vtiger 中返回空结果

java - 在单元测试期间在应用程序类中出错

Mysql Left join 旋转90°表

php - PHP/Sqlite3进程同步

django - 使用非托管模型转储数据