2011-12-20 28 views
0

我有一个客户,它拥有一组非常小的数据和记录,我通常只是序列化到数据文件并完成,但他们想要运行额外的报告并拥有可扩展性在路上以自己的方式做事。 MySQL数据库出现了,所以我正在调整他们的Java POS(销售点)系统来处理它。如何使用Java在MySql数据库中迭代记录

我以前做过,这里是我简而言之方法为一个表,说客户:

我设置一个循环来存储主键成一个ArrayList,然后设置一个形式从去一条记录到下一个正在运行的基于PK的SQL查询。该查询将拉下fname,lname,地址等,并填写屏幕上的字段。

我以为它可能有点笨重,每次单击下一步运行SQL查询。所以我正在寻找解决这个问题的另一种方法。任何帮助表示赞赏!我不需要确切的代码或任何东西,只是一些概念会做得很好

谢谢!

回答

2

我会说你认为自己的解决方案并不是很好,不仅是因为你的每一个按钮被按下时运行SQL查询,但也因为你迭代的主键,这可能是没有排序在任何有意义的顺序...

你想要的是检索一定数量的这些合理排序记录(由第一/姓氏或某事),并让他们在你的ArrayList或类似的东西是一种高速缓存。这可以用SQL很容易地完成。当用户按“Next”开始迭代结果时,您可以在后台开始加载更多记录。

保持可用性的关键是加载一些记录之前用户实际要求他们保持延迟小,但记住,你也不想在一次加载整个数据库....

+0

谢谢,我也在思考这些问题,只是在我脑海中弹出想法。我和你一起加载一百个记录或者类似的东西,一旦用户在列表中进展到目前为止,比如选择记录76/100,然后开始加载下一个100.我会问客户他们是如何想要它分类,你的权利,通过PK拉动可能不会最有意义。至少拉出名字或更有用的东西 – JKK 2011-12-20 17:04:23

0

使用JPA与内置的Hibernate提供程序。如果您对其中一项或两项都不熟悉,请下载NetBeans - 它包含一个非常容易遵循的教程,您可以使用它来加快速度。管理对象列表对于新的JPA来说是微不足道的,你不会发现自己重新发明轮子。

+0

看着链接,好东西!对于这个应用程序,我希望手动完成,直接与数据库进行交互,而不是使用预先构建的代码。我有一些SQL的经验,所以编写查询,索引,插入等,我会弄明白,但我很欣赏这个建议! – JKK 2011-12-20 17:10:35

0

这里的关键概念是分页

比方说,你设置页面大小为10。这意味着你从数据库中选择10条记录,按照一定的顺序,使您的查询应该有一个order by条款并在最后一个limit条款。用户使用此结果集显示表单时,用户使用上一个/下一个按钮进行导航。

当用户导航到页面之外时,您将获取其他页面。

https://www.google.com/search?q=java+sql+pagination

+0

太好了,谢谢,我也会检查一下 – JKK 2011-12-20 17:07:18

相关问题