mongodb基礎シリーズ——java操作mongodb画像ファイル機能を実現
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);
}
}
画像もこのように保存されており、画像をファイルとして保存しています.
上記のストレージを実行した結果は次のとおりです.