簡體   English   中英

構建我的Java應用程序

[英]Structuring My Java Application

我正在計划一個Java應用程序,該應用程序將存儲有關我的硬幣收藏中物品的信息和圖片。 例如,每個硬幣將具有其自己的記錄頁面。 在該頁面上,將顯示文本字段,其中將顯示用戶輸入的信息以及該特定硬幣的圖片。 用戶將具有在此應用程序中添加,刪除和更新記錄的選項。

我的問題是,我該如何存儲所有這些數據? 現在,我已經設計了大多數GUI並可以正常工作。 但是我不確定存儲和組織每條記錄的所有數據和圖像的“正確”方式。 創建記錄時,是否應該將這些數據推送到SQL數據庫中,然后在用戶瀏覽該記錄時從其中提取數據? 還是應該創建某種目錄結構,其中每個記錄都有自己的目錄,其中包含圖像和所有數據字段的文本文件?

另外,我計划將該應用程序分發給我的一些朋友,因此我想確保一切對他們來說都可以正常運行,而無需安裝任何其他軟件(除Java外)。

我通常只是編寫命令行腳本,因此對編寫這類應用程序很陌生。 任何人都可以提供的任何幫助將不勝感激!

謝謝。

您可以在下面的基本架構下建立像MySql這樣的關系數據庫。

表:硬幣,user_entered_infos,用戶

硬幣-ID(PK),名稱,圖像鏈接

用戶-ID(PK),名字,名字

user_entered_infos-ID(PK),coin_id(FK),user_id(FK),user_entered_info

這樣,您可以為每種硬幣選擇,可以從user_entered_infos表中選擇所有用戶輸入的信息並進行查看。 並且當用戶從硬幣頁面添加或刪除時,將其從表格中刪除。

數據庫可能無法滿足您的需求,並且本身就是一個完整的學習曲線。 通過某些Java的內置對象序列化,您可能會得到滿意的結果。 序列化是一種將對象保存到文件或將它們傳遞給其他應用程序的簡便方法。

考慮以下代碼,這是您如何解決此問題的非常簡單的草圖。 我確定您有比我要向您展示的對象還要詳細的對象,此代碼的目的是讓您大致了解如何序列化對象並保存它。

import java.io.*;
import java.util.ArrayList;

public class CoinCollectionApp {

    static File collectionFile = new File("path/to/file/coin-collection.obj");

    public static void main(String[] args) {
        ArrayList<Coin> coins = new ArrayList<>();
        Coin lincolnPenny = new Coin("Lincoln penny", 1955, "fine");
        coins.add(lincolnPenny);
        saveCollection(coins);
    }

    static void saveCollection(ArrayList<Coin> coinCollection) {
        try {
            FileOutputStream fout = new FileOutputStream(collectionFile);
            ObjectOutputStream oos = new ObjectOutputStream(fout);
            oos.writeObject(coinCollection);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    static class Coin implements Serializable {
        private static final long serialVersionUID = 1L;
        String name;
        int year;
        String quality;

        public Coin(String name, int year, String quality) {
            this.name = name;
            this.year = year;
            this.quality = quality;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM