mongodb基礎系列——java操作mongodb實現圖片檔案功能

來源:互聯網
上載者:User

  

   mongodb支援多種語言,並且提供了多種語言的驅動。

   這篇部落客要介紹如何mongodb儲存以及讀取檔案     前提:下載相應的驅動:官網上下載:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/  本人使用mongo-2.10.1.jar版本:   mongodb操作檔案,主要是通過GridFS類。隱藏檔主要存放在fs中了,其中的fs是資料庫預設的。     

   並且GridFS是直接與資料庫打交道,與collection集合無關。   具體的操作如下:其中有相應的注釋:  
   package com.mongo.dao;import java.io.File;import java.util.List;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBObject;import com.mongodb.Mongo;import com.mongodb.gridfs.GridFS;import com.mongodb.gridfs.GridFSDBFile;import com.mongodb.gridfs.GridFSInputFile;/*** 使用mongodb對檔案的讀取操作* @author lhy**/public class GridFSTest {         public static void main(String[] args) throws Exception {          //saveFile();          readFile();     }         /**     * 隱藏檔     */     public static void saveFile() throws Exception{                   //串連伺服器          Mongo mongo=new Mongo();          //串連資料庫          DB db=mongo.getDB("testGridFS");                   //檔案操作是在DB的基礎上實現的,與表和文檔沒有關係          GridFS gridFS=null;          gridFS=new GridFS(db);                   String fileName="vltest.log";          File readFile=new File("d:/"+fileName);                   GridFSInputFile  mongofile=gridFS.createFile(readFile);        //可以再添加屬性          mongofile.put("path","d:/"+fileName);          //儲存          mongofile.save();              }         /**     * 讀檔案,讀到磁碟上     * @throws Exception     */     public static void readFile() throws Exception{          //連結的伺服器          Mongo mongo=new Mongo();          //串連資料庫          DB db=mongo.getDB("testGridFS");          GridFS gridFs=null;          gridFs=new GridFS(db);                   //尋找條件          DBObject query=new BasicDBObject();        //查詢的結果:          List<GridFSDBFile> listfiles=gridFs.find(query);        GridFSDBFile gridDBFile=listfiles.get(0);               //獲得其中的檔案名稱        //注意 : 不是fs中的表的列名,而是根據調試gridDBFile中的屬性而來        String fileName=(String)gridDBFile.get("filename");               System.out.println("從Mongodb獲得檔案名稱為:"+fileName);                File writeFile=new File("d:/"+fileName);        if(!writeFile.exists()){             writeFile.createNewFile();          }               //把資料寫入磁碟中        //查看相應的提示        gridDBFile.writeTo("d:/a.txt");        //寫入檔案中        gridDBFile.writeTo(writeFile);                      }}
    其中圖片也是這麼儲存的,把圖片當作檔案來儲存。    運行上述儲存結果如下:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.