2015-04-15 16 views
0

我正在開發一個以pdf形式創建和存儲發票的Java應用程序。我創建一個新的文件夾,每到過年的每一個新的一個月,我將其存儲如下:使用java保存數據庫路徑的替代解決方案

private void CreateDir() { 

    Calendar now = Calendar.getInstance(); 
    int year = now.get(Calendar.YEAR); 
    String yearInString = String.valueOf(year); 


    int month = now.get(Calendar.MONTH) +1; 
    String monthInYear = String.valueOf(month); 


    File rootDir = File.listRoots()[0]; 
    File dir = new File(new File(new File(rootDir, "MijnFacturen"), yearInString), monthInYear); 
    if (!dir.exists()){ 
     dir.mkdirs(); 
     System.out.println("directories made"); 
     setInvoicePath(dir.toString()); 
     System.out.println(invoicePath); 
    } else { 
     setInvoicePath(dir.toString()); 
     System.out.println(invoicePath); 
    } 

} 

所以這麼好。但是當我保存到mysql數據庫的路徑時,它會自動從我的字符串中刪除反斜槓。我讀到,在數據庫中保存路徑是不切實際的。但是,我應該在哪裏保存我的路徑文件。什麼是檢索它的最好方法?

回答

1

爲什麼不直接將發票作爲BLOB s直接保存到數據庫中?它會更加方便,您可以通過您隨存儲的任何元數據(日期,總值等)輕鬆查詢它們。

+0

你能給我一個快速解釋blob是如何工作的。我們只看過一些sql的教訓,從不談論blob?你現在有什麼好的網站有一些例子嗎? – Greg

+0

這是數據庫中的二進制列。基本上就像您將自己存儲在文件中一樣,除了更強大,並且您不需要擔心路徑。大量的教程和信息可在您最喜愛的搜索引擎中找到。 – Kayaman