JavaFX的2.0的TableView在FXML与从数据库中的数据(JavaFX 2.0 Tabl

2019-06-24 08:53发布

我想知道我怎么可以检索从MySQL数据库中的数据到的tableview是成FXML文件。 我必须检索数据,并将其放置到其位于FXML文件的tableview。 我有我怎么会连接到数据库的想法,但我不知道如何来检索数据,并将其放置到的tableview。

该tableview中处于​​FXML文件。 如果我还在这里,任何人都知道我导入的数据后,我怎么可以编辑细胞在此的tableview?

我工作的应用程序是一个桌面一个!

Answer 1:

有几个方法可以做到这一点,一个是使用从JDBC适配器DataFX 。

更新

FXML本身只定义一个基于XML的UI结构,它不能从数据库加载数据。

当数据从数据库起源,创建包含数据值的静态FXML文件很可能在大多数情况下,一个坏主意。 任何时候更改数据库中的数据,您将需要生成并装入新FXML文件,并为您将需要通过手工创建新文件或写一个脆弱的计划来生成基于在数据中的新FXML文件数据库。

建议方法:

  1. 只有使用FXML来定义你的TableView结构,但不包含实际数据值。
  2. 在你的JavaFX的Java代码连接到MySQL数据库。
  3. 使用DataFX JDBC数据源适配器从数据库中检索数据并填充的TableView。

您可以编写自己的代码来执行步骤3.用你自己的代码可能是一个好主意,如果你想使用JPA(我认为DataFX目前不直接支持)。 否则,你可能会使用效果更佳更快的使用DataFX执行结束。

要了解如何做编辑在TableView中,阅读的TableView教程 。 同样,DataFX将帮助您通过提供控制细胞工厂进行编辑-所以我建议使用DataFX这不是handcoding的TableView中的编辑处理。

我不知道如果DataFX代码将帮助您,当您需要提交编辑的数据库; 在这种情况下,你可能需要添加自己的JDBC或JPA代码提交更改。



Answer 2:

据我所知,你不能检索和数据库在FXML文件中显示的数据,使的tableview细胞FXML文件编辑。 尽管这是可能的(也许部分地通过自定义BuilderBuilderFactory ),不建议这样做,在MVC的感觉。 请阅读为什么要使用FXML和它的好处第一。 你仍然可以定义FXML文件中的一些基本的数据结构,如果它是如此必要,请介绍FXML 。
所以做你的非视图相关的任务的initialize()控制器的方法,即检索数据和设置的tableview的项目。 自定义表列的电池工厂,以支持编辑等。



文章来源: JavaFX 2.0 TableView in FXML with Data from Database