簡體   English   中英

如何在JavaDB Derby數據庫中存儲Java對象?

[英]How to store Java Objects in JavaDB Derby Database?

我有一個Java類來存儲電影/電視/ DVD索引的媒體對象。 我打算嘗試將這些對象存儲在JavaDB數據庫中。 它將有成千上萬的條目。

我已經閱讀了有關序列化對象的知識,也了解了一些有關休眠和持久性API的知識,盡管我不太了解它們是如何工作的。 我只是對應該學習的內容感到困惑。 我應該擔心這些,還是只用VARCHAR列中的所有信息創建一個表?

誰能給我任何有關將這些信息存儲到數據庫中的系統的提示? 或者也許只是一些關於您將要做的事情的一般性指示,為什么?

顯然,我是數據庫的新手。 我剛剛完成了此codejava教程,並且可以成功創建/連接到JavaDB數據庫。

謝謝!

public class Media {

    File file_location;
    String filename;
    Date date;
    int hres;
    int vres;
    boolean has_tbn;
    File tbnloc;
    boolean has_ss;
    File ssloc;
    int length;
    String[] actors;
    String[] tags;
    boolean HD;
    long filesize;
    String md5 = "origMD5";

    Media(File thefile) {
        this.file_location = thefile;
    }

    Media(String thefile) {
        this.file_location = new File(thefile);
    }
// snipped getters and setters
}

ORM-對象關系映射是Hibernate和其他框架用來將數據存儲到數據庫中的概念。 這是使存儲數據更容易的一種選擇。

使用Hibernate Framework,您就有機會像對象本身(Media對象)一樣思考數據庫行,而該行的列是Media對象字段。 通過使用Pojo類,您可以訪問所有這些字段,並根據需要設置/獲取字段,並且使用Hibernate API,可以將對象持久化到數據庫中。

根據此概念,您可以選擇使用Hibernate Framework或使用默認的JDBC。

關於休眠的一個很好的教程,您可以在這里找到: http : //www.tutorialspoint.com/hibernate/index.htm

我將借此機會講些可能引起爭議的事情:Media類似乎不是程序中操作的良好抽象。 而是似乎只是數據的集合。 您需要getter和setter(for all?)成員這一事實也指出了這一方向。

這是我的(有爭議的)建議:當媒體並非真正存在時,請不要試圖使它成為一個對象。 只需為您的數據創建一個ER(實體關系)模型,然后創建要匹配的數據庫表即可。 然后找出您需要/想要支持的查詢,並創建必要的索引以加快處理速度。 然后在您的應用程序中創建類/對象以支持查詢/操作。

恕我直言,除非您的程序是一種模擬,否則您的程序對象應該建模在很多OO文學中如此流行的真實世界的想法是錯誤的。 但是,並非所有程序中的99%都是,它們需要支持其實際功能的對象(數據和操作)。 這通常類似於從數據庫中獲取數據,將其復制到gui模型中,然后重新顯示。

暫無
暫無

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

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