我想知道如何将 mysql 数据库中的数据检索到 fxml 文件中的 tableview 中。我必须检索数据并将其放入位于 fxml 文件中的 tableview 中。我知道如何连接到数据库,但我不知道如何检索数据并将其放入 tableview。
表格视图位于 fxml 文件中。如果我还在这里,任何人都知道在我导入数据后如何编辑此表格视图中的单元格?
我使用的应用程序是桌面应用程序!
有几种方法可以做到这一点,一种是使用DataFX的 JDBC 适配器。
更新
FXML 本身只是定义了一个基于 xml 的 UI 结构,它不能从数据库中加载数据。
当数据来自数据库时,在大多数情况下,创建包含数据值的静态 fxml 文件可能不是一个好主意。每当数据库中的数据发生变化时,您都需要生成并加载一个新的 fxml 文件,为此您需要手动创建新文件或编写一个脆弱的程序来根据数据中的数据生成新的 fxml 文件数据库。
建议的方法:
您可以编写自己的代码来执行第 3 步。如果您希望使用 JPA(我认为 DataFX 目前不直接支持),使用您自己的代码可能是一个好主意。否则,您可能会使用 DataFX 实现更快地获得更好的结果。
要了解如何在 TableView 中进行编辑,请阅读此TableView 教程。同样,DataFX 将通过为编辑提供控制单元工厂来帮助您- 所以我建议为此使用 DataFX 而不是手动编码 TableView 编辑处理。
当您需要对数据库进行编辑时,我不确定 DataFX 代码是否会对您有所帮助;在这种情况下,您可能需要添加自己的 JDBC 或 JPA 代码来提交更改。
AFAIK,您无法在 FXML 文件中检索和显示来自 DB 的数据,并使表格视图单元格在 FXML 文件中可编辑。尽管这是可能的(可能部分通过自定义Builder
和BuilderFactory
),但在 MVC 的意义上不建议这样做。请先阅读为什么使用 FXML及其好处。如果有必要,您仍然可以在 FXML 文件中定义一些基本的数据结构,请参阅FXML 简介。
因此,在控制器的方法中执行与视图无关的任务initialize()
,即检索数据并设置 tableview 的项目。自定义表格列的单元工厂,支持编辑等。