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

JavaFx Tableview在Sql应用程序中的速度和排序

刘阳荣
2023-03-14

我正在开发一个小型的玩具应用程序,以扩展我关于JavaJavaFxSql的知识。我在本地网络中有一个MySQL服务器,我可以与之通信,一个简单的Tableview可以被填充、排序...等等。数据只显示给用户,没有编辑。一切都很干净。

问题是:

>

  • 大约有17万行10列,全部字符,要显示,这似乎很难在合理的时间内完成。查询是在启动时完成的,大约需要1.5分钟才能看到表。

    而且内存占用非常大,没有填充Tableview的应用程序大约有70MB,所有数据都有600-700MB(用于填充mysql的xml文件大小为70MB…)!

    排序真的很慢,我正在使用StringProperties,这应该会给一个提升根据: JavaFx表视图排序真的很慢如何提高排序速度在java摇摆(如果我理解正确)然而自定义排序,我没有尝试到目前为止。

    我的想法:

    与移动应用程序设计类似,我认为适配器模式可以解决这些问题。因此,我创建了一个具有正确大小元素的OberservableList,但在开始时只填充行的限制。当我滚动完成(滚动轮)列表必须通过sql查询提前更新新元素。这应该会给我第一个问题的性能提升。好主意,但是如果用户要通过滚动条滚动(单击并向下拖动),那么我会跳过某些条目,但是我需要信息来给用户反馈滚动到哪里。我该怎么解决这个问题?

    对于排序,我将使用sql排序方法,因此每个排序都将在sql server上执行,并将创建一个新的OberservableList。与之前一样,在第一次查询中只会加载一定数量的数据。

    我不确定这种方法是否也会影响内存占用。

    你的意见是:我的想法是否合理,在JavaJavaFx中是否可行?我很想听听你对这些问题的看法。

    非常感谢。

  • 共有1个答案

    祁星阑
    2023-03-14

    我发现JVx能够提供延迟加载功能。这应该能奏效

     类似资料:
    • 问题内容: 该表具有以下字段: 假设我有上表。我想获取昨天的记录,并通过将金额打印为美分来生成报告。 一种方法是在我的Java应用程序中执行计算并执行一个简单的查询 然后遍历记录,并在我的Java应用程序中将金额转换为美分并生成报告 另一种方法类似于在sql查询本身中执行计算: 然后遍历记录并生成报告 一种方式是,我所有的处理都在Java应用程序中完成,并且触发了一个简单的查询。在其他情况下,所有

    • 快速排序 from typing import List def quick_sort(arr: List, left, right) -> List: """ 快速排序是对冒泡排序的改进,核心思想是找到一个中值点pivot,然后将小于等于pivot的放在pivot的左边,大于pivot的放在右边,一直递归到无法拆分pivot点。 :param arr: :re

    • 帮手 排序函数 因此,我花了一段时间来弄清楚是如何工作的。它从0开始,只有当for循环中的当前元素小于数据透视时,它才会增加1。当我们遇到一个大于pivot值的数字时,splitIndex将保持其值,将递增。在下一步中,如果该数字也小于枢轴,我们交换它们 谢谢

    • 我正在开发一个应用程序,它有rest API调用和4个选项卡,使用页面滑动选项卡条,但我的问题是,当我从左向右移动选项卡时,显示页面已经太晚了,并点击了5到8秒为什么?这里我用的是碎片。我的应用程序很像what’s应用程序。 提前谢谢`

    • 问题内容: 我一直在从事一个更像框架的项目,并且可以安装几个应用程序/模块。像基本的应用商店或google.play商店一样看到它。这是一个Intranet应用程序,所有模块都可以添加到您的用户帐户中。 该框架已经在开发中,但是我现在正在围绕应用程序/模块的想法。(链接到开发中的概念证明,可以在这里找到) 一个应用程序应该是独立的,并且不能突然包含框架中的脚本,这可以通过在单独的模块中进行结构化来

    • 我有一个多项目(2个模块),它的建设需要大约1/2分钟每次。当我在Android Studio按下Run的时候,我每次都要等待才能重建app,慢得不得了。每次都用了6/8分钟。 在Android Studio中有没有可能实现构建过程的自动化?或者对于如何让这个过程更快,你有什么建议吗? 这是我的build.gradle文件(应用程序模块):