Board logo

標題: [操作疑難] Java app 需要一個簡單的database, 可以用咩? [打印本頁]

作者: 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

Android?
用翻官方既Room
KinChungE 發表於 2021-10-15 22:11



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

使乜database 啊,寫落去JSON file 咪得囉,最簡單。
再唔係CSV file 都得啦。
javacomhk 發表於 2021-10-16 18:51



    其實我之前都試過在另一個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 編輯
將個array list save 去file, 下次read返佢
666 發表於 2021-10-17 11:18


這也是個可行的方法,但要注意,如果資料量巨大,可能會導致 Java 記憶體不足的問題,因為當你在程序開始的時候,會先把所有數據由檔案中讀取至記憶體裡。
作者: KinChungE    時間: 2021-10-17 18:24

其實我之前都試過在另一個app咁做。但今次要記的資料多好多倍,怕會出問題,所以先問下database。用 ...
Wakeman 發表於 2021-10-17 12:08


缺點係:
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

缺點係:
1. 慢
2. 慢
3. 都係慢
唔怕慢的話冇問題, 當text file咁save個大json ...
KinChungE 發表於 2021-10-17 18:24


所以當資料量多的時候,還是使用資料庫會比較好。
作者: javacomhk    時間: 2021-10-17 19:51

其實我之前都試過在另一個app咁做。但今次要記的資料多好多倍,怕會出問題,所以先問下database。用 ...
Wakeman 發表於 2021-10-17 12:08



    幾百個entries 邊叫好多呀!
作者: KinChungE    時間: 2021-10-17 19:54

幾百個entries 邊叫好多呀!
javacomhk 發表於 2021-10-17 19:51


其實唔係睇幾多個, 仲要睇每個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





歡迎光臨 電腦領域 HKEPC Hardware (https://www.hkepc.com/forum/) Powered by Discuz! 7.2