作者: Wakeman 時間: 2021-10-15 20:21 標題: Java app 需要一個簡單的database, 可以用咩?
小弟因為是自學,所以想問呢個簡單問題。我寫緊一個app,要save一個有文字,網址,圖片的arraylist。大概幾百個entries。save 在手機就夠,不用server。
用咩database可以簡單做到?謝謝!
作者: KinChungE 時間: 2021-10-15 22:11
Android?
用翻官方既Room
https://developer.android.com/training/data-storage/room
作者: Wakeman 時間: 2021-10-15 22:51
Thanks!
等我研究一下!
作者: javacomhk 時間: 2021-10-16 18:51
使乜database 啊,寫落去JSON file 咪得囉,最簡單。
再唔係CSV file 都得啦。
作者: 666 時間: 2021-10-17 11:18
本帖最後由 666 於 2021-10-17 11:20 編輯
將個array list save 去file, 下次read返佢
https://mkyong.com/java/how-to-r ... a-object-to-a-file/
作者: 杜龍 時間: 2021-10-17 11:35
h2 or sqlite
作者: Wakeman 時間: 2021-10-17 12:08
其實我之前都試過在另一個app咁做。但今次要記的資料多好多倍,怕會出問題,所以先問下database。用呢個方法有冇話一般有咩限制?同database比各有甚麽優點缺點?
作者: Casper_HK 時間: 2021-10-17 17:51
本帖最後由 Casper_HK 於 2021-10-17 18:00 編輯
如果你是寫 Android 程式,Android 系統已經內置了 SQLite Database 可供使用。
其實安裝多一個 MySQL Database 在自己的電腦上並不會產生多大的影響,或者你是想自己的程式擁有更高的便携性。
使用 Database 的好處是方便在大量資料之中搜索需要的數據,可以使用 SQL Commands,而且我們也可以用 Database Client,例如 DBeaver 或 MySQL Workbench 去管理你的資料。
作者: Casper_HK 時間: 2021-10-17 17:56
本帖最後由 Casper_HK 於 2021-10-17 18:01 編輯
這也是個可行的方法,但要注意,如果資料量巨大,可能會導致 Java 記憶體不足的問題,因為當你在程序開始的時候,會先把所有數據由檔案中讀取至記憶體裡。
作者: KinChungE 時間: 2021-10-17 18:24
缺點係:
1. 慢
2. 慢
3. 都係慢
唔怕慢的話冇問題, 當text file咁save個大json
作者: Wakeman 時間: 2021-10-17 18:27
回覆 9# Casper_HK
謝謝詳細解釋!
作者: Wakeman 時間: 2021-10-17 18:29
回覆 10# KinChungE
明白,謝謝!
作者: Casper_HK 時間: 2021-10-17 19:44
所以當資料量多的時候,還是使用資料庫會比較好。
作者: javacomhk 時間: 2021-10-17 19:51
幾百個entries 邊叫好多呀!
作者: KinChungE 時間: 2021-10-17 19:54
其實唔係睇幾多個, 仲要睇每個entry幾大
如果樓主將每張圖都塞埋落json (base64 encode)
假設一張圖100KB, 幾百entry已經幾十MB
咁既話用DB既blob會比json好, 唔使每次load一個record都將幾十MB read哂
作者: CT333 時間: 2021-10-18 03:32
提示: 作者被禁止或刪除 內容自動屏蔽
作者: gn01119056 時間: 2021-10-18 09:18
最好養成好習慣, 用返SQL放野
要唸埋日後maintain, upgrade
除非你好肯定只係一次性, 要快手就可以save text file最方便
作者: little_keung 時間: 2021-10-19 21:03
最好養成好習慣, 用返SQL放野
要唸埋日後maintain, upgrade
除非你好肯定只係一次性, 要快手就可以save tex ...
gn01119056 發表於 2021-10-18 09:18
同意 maintain 同 upgrade 重要, 但市面有 DB Engine 係 NoSQL , 同樣都提供 maintain 同 upgrade
o既方便.
最緊要夾用途, SQL 唔 SQL 唔應該係最大 concern .
作者: gn01119056 時間: 2021-10-20 08:51
同意 maintain 同 upgrade 重要, 但市面有 DB Engine 係 NoSQL , 同樣都提供 maintain 同 upgrade ...
little_keung 發表於 2021-10-19 21:03
睇下使唔使migrate expand, SQL比較大路
不過無需要既就咁用file都可以
作者: s.friday1004 時間: 2021-10-23 00:31
其實都講明係多資料
你做每個考慮時要諗埋日後maintenance
就咁當json 寫file 唔係問題
但read write 都要完整file 咁操作
慢到嘔之餘,你memory 亦要處理 buffered load ,否則memory out of size 都要處理
無左 sql index / binary search後,你亦只能靠 json deserialized 後既 data structure 去做 item lookup
我估睇到呢到,你會知揀邊個solution

