Java JTable一次将单个单元格保存到数据库
我是Java新手,所以对于长期从事Java编程的人来说,这可能是一个简单的问题 无论如何,我的问题是如何使用JTable。我想加载/保存该JTable中的数据。问题是,我不确定如何保存用户以某种方式更改的单元格 单击事件看起来像我拥有的:Java JTable一次将单个单元格保存到数据库,java,sql,sqlite,sql-update,jtable,Java,Sql,Sqlite,Sql Update,Jtable,我是Java新手,所以对于长期从事Java编程的人来说,这可能是一个简单的问题 无论如何,我的问题是如何使用JTable。我想加载/保存该JTable中的数据。问题是,我不确定如何保存用户以某种方式更改的单元格 单击事件看起来像我拥有的: @SuppressWarnings("serial") class EditableTableModel extends AbstractTableModel { String[] columnTitles; Object[][] data
@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中的任何单元格时,此函数都会正常启动。它还提供了该编辑单元格中的行号和列号,当然还有更改为的值。但我的问题是:
如果一次只保存一个单元格值,我将如何将该数据保存到数据库中?
我的数据库结构如下所示(与jTable结构具有相同的布局/顺序):
因此,作为一个例子,如果我将第一行第三列即数据用户从Jenny更改为George,那么我如何将映射到数据库,以便将其保存在正确的位置(行、列)
对DB的调用必须在单独的线程中执行,因为StValueEnter将在线程java中执行GUI的执行。
需要考虑Table键(PK假定ID)。 原始更新查询
update table_name
set [computed_field_name] = column_new_value (dataEntries[row][column])
where id = obj_key
由于您预先知道COL的对应名称,因此还需要正确设置
字段名称(如果col=1,那么数据脚本…等等)对不起,这对我来说没有多大意义。我想知道为了保存那个单元格,查询需要是什么。
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