mongodb基礎シリーズ——java操作mongodb画像ファイル機能を実現



mongodbは複数の言語をサポートし、複数の言語の駆動を提供しています.
このブログでは主にmongodbストレージとファイルの読み取り方法について説明します
  
前提:相応の駆動をダウンロードする:公式サイトでダウンロードする:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/
本人はmongo-2.10.1を使用します.JArバージョン:
mongodbは、主にGridFSクラスを介してファイルを操作します.ストレージファイルは主にfsに格納され、fsはデータベースのデフォルトです.
  
mongodb基础系列——java操作mongodb实现图片文件功能_第1张图片
また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);       
       
        }
}
  
画像もこのように保存されており、画像をファイルとして保存しています.
上記のストレージを実行した結果は次のとおりです.
   
mongodb基础系列——java操作mongodb实现图片文件功能_第2张图片