Java 通过JafaFx表格单元格编辑动态更改SQL数据库的方法
我的javaFx应用程序有许多带有可编辑表格单元格的表格,用于从sql数据库填充数据。我还希望在通过表格单元格编辑数据后对数据库进行更改。根据此toturial“” 我已经用下面的代码创建了我的可编辑表格单元格Java 通过JafaFx表格单元格编辑动态更改SQL数据库的方法,java,sql,javafx,Java,Sql,Javafx,我的javaFx应用程序有许多带有可编辑表格单元格的表格,用于从sql数据库填充数据。我还希望在通过表格单元格编辑数据后对数据库进行更改。根据此toturial“” 我已经用下面的代码创建了我的可编辑表格单元格 item_price_col.setCellValueFactory( new PropertyValueFactory("price") ); item_price_col.setCellFactory(TextFieldTableCell.forTableColumn()
item_price_col.setCellValueFactory(
new PropertyValueFactory("price")
);
item_price_col.setCellFactory(TextFieldTableCell.forTableColumn());
item_price_col.setOnEditCommit(
new EventHandler<CellEditEvent<Item, String>>() {
@Override
public void handle(CellEditEvent<Item,String> t) {
String old_price=t.getOldValue();
((Item) t.getTableView().getItems().get(
t.getTablePosition().getRow())
).setPrice(t.getNewValue());
String new_price=t.getNewValue();
System.out.println("Old Price:"+old_price);
System.out.println("New Price:"+new_price);
}
}
);
在数据库中为项目保留一个
id
字段。
如果数据库中没有主键或唯一键,则可能犯了一些体系结构错误。无论如何,在某些数据库服务器中指定了行id
private int id; // id field for item object.
更新时,将id包含为条件
updatesometable set price=item.getPrice(),其中id=item.getId();
我知道sql编写得不好,但我希望您能理解它
而且您不必在表格网格中显示id字段的值
大多数系统都使用这种技术
2015年12月18日编辑
表中有“代码”列。由jdbc检索到项目对象的id字段中
有一个例子
您的
项
类是否具有唯一的id字段(即表示数据库主键的字段)?顺便说一句:用于通过单个方法调用获取项
。感谢您的关注。您能否提供有关如何获取唯一列(id)值的更多详细信息或在线教程使用CellEditEvent.getRowValue()编辑的行。感谢您的关注。我的项目表已经有主键。但问题是我不知道如何获取所选行的主键。在该toturial“”中,它展示了如何只获取编辑列的旧值和新值。您应该使用jdbc连接并学习其文档。如果你想在google上搜索它,我建议你这样搜索:“jdbc java2s”或“jdbc TutorialPoint”,谢谢你的关注。我现在正在使用jdbc连接,我的javaFx表使用jdbc保存sql数据库中的数据。我已经为我的项目创建了insert和delete QUARE。但是在这种情况下,我不知道如何获取所选行的主键。我需要编写类似“更新项目集价格=新价格\值,其中id=X”这样的查询.X是一个变量,它具有我编辑行的唯一pirmary键值。请通过添加数据库表结构编辑问题,然后将有一个一次性答案项目|创建表item
(code
int(11)非空,name
varchar(50)默认为空,price
varchar(50)不为空,whole\u sale\u price
varchar(50)不为空,original\u price
varchar(50)默认为空,主键(code
),唯一键code
(code
)引擎=InnoDB默认字符集=latin1|
private int id; // id field for item object.