2011-12-20 62 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

相關問題