[英]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.