当前位置: 首页 > 知识库问答 >
问题:

将可编辑的tableView链接到javaFX中的数据库

颜嘉誉
2023-03-14

我正在为JavaFX和数据库实践做一个项目(主要是我是初学者),在那里我有一个独特的类,保存音乐会的记录(名称、地点、日期等)。我最初将这些保存在填充表视图的可观察数组列表中。从这里,记录可以被编辑、删除或添加新的。

我现在使用ORMLite和sqlite将这些存储在数据库中。这样我就可以对数据执行过滤(即在特定位置显示所有事件),然后在表上显示。

我的问题是,当我从数据库中读取数据时,我会将其转换为ObservableArrayList,以便表视图可以使用它,但通过创建新的数组列表,我的编辑/新建/删除按钮只会影响该列表,而不会影响数据库。问题是,每次我执行一个查询,比如向数据库中添加或删除记录,它都需要为tableView重新生成observableArrayList,这需要大约5秒钟的时间,大约有250k条记录。

有没有一种更有效的方法来处理数据库和javaFx tableViews?

共有1个答案

申屠黎昕
2023-03-14

有没有更有效的方法来处理数据库和javaFx表视图?

>

  • 当你更新某些字段,然后浏览你的记录列表,只对那些脏的记录进行DAO调用时,在记录上设置某种脏标志怎么样?可能是一个包含CREATE, DELETE, UPDATE, NONE的枚举。

    另一个想法是执行dao。更新(…) dao。删除(…) ,或dao。创建(…) 在更新记录时调用,尽管您可能希望每次都执行一次。

    最后一个想法是保留4个数组。一个用于整个列表,一个用于新记录,一个用于脏记录,一个用于要删除的记录。当按下编辑/新建/删除按钮时,您可以将记录添加到列表中,然后在最后您可以一次保存所有记录。

  •  类似资料:
    • 我正在尝试在JavaFX中创建一个可编辑的TableView,显示存储在自定义类StocktingLocation中的各种值。其中一些值是字符串,而另一些是各种数值数据类型(短整型、整型、双精度型),并且某些字符串具有与之关联的特定必需格式。我正在使用类似于以下代码块的东西来定义每个表列,使用SortStringConverter()或类似的东西来获取文本输入并将其转换为目标数据类型: 但是,我想

    • 我试图在JavaFX中创建一个可编辑的TableView。我从2个连接的表中获取数据,所以我在TableView中使用对象。 我已经将表和列设置为可编辑,,我尝试对列的执行操作(例如,类似于textfield)。 我还没能解决这个问题。 那么,如何使包含对象的单元格可编辑呢?谢谢你的回答

    • 在JavaFX 8中,我尝试在将新行添加到表中后编辑单元格,以优化用户体验。 选择了正确的行,但单元不会进入编辑模式。嗯,我很偶然地看到了这种情况,但很难再现。我做错了什么?

    • 在阅读了大量涉及setOnEditCommit的可编辑TableView解决方案后,我今天对Oracle非常生气,这不是正确的方法。 以下是我在挖掘JavaFX源代码后发现的一个更好、更简单的解决方案:

    • 我构建了一个用于显示数据的小JavaFX TableView。用户应该能够在桌面视图中编辑数据。问题是:某些字段只允许特定值。如果用户输入了错误的值,则该字段设置为0。 这是我的班级: 所以当我编辑一个tableviewcell并输入“q”(这个值是不允许的)并按Enter时,调试器在上面的catch块中跳转,将观察列表中的特定值设置为0(我可以在调试器中看到这一点,当我展开这个对象时)但是tab

    • 我有一个JavaFX TableView,它有两列。此表使用观察列表作为其模型。 我想将其中一个设置为可编辑,另一个设置为不可编辑。 首先,我尝试了FXML方法: 但这不管用。表格始终不可编辑。 我还尝试了java方式: 但这也不管用。所有的桌子都不能修改。 如果TableColumn有一个可编辑的属性,那么它应该可以单独设置。 如果你知道我哪里做错了,请帮帮我。谢谢。 PS:measureNum