import com.mongodb.*;
import com.mongodb.gridfs.GridFS;
import com.mongodb.gridfs.GridFSDBFile;
import com.mongodb.gridfs.GridFSInputFile;
import java.io.FileInputStream;
/**
* Created by jiangyunxiong on 2018/3/20.
*/
public class MongoDBUtil {
/**
* 存储文件
* @param file
* @param fileId
* @param filename
*/
private static MongoClient mongoClient = new MongoClient("localhost", 27017);;
private static DB db = mongoClient.getDB("springboot-db");
private static GridFS gridFS = new GridFS(db);
/**
* 保存文件
* @param filePath
* @param id
* @param fileName
*/
public static void save(String filePath, Object id, String fileName){
DBObject query = new BasicDBObject("_id", id);
try {
FileInputStream in = new FileInputStream(filePath);
GridFSDBFile gridFSDBFile = gridFS.findOne(query);
if(gridFSDBFile == null){
GridFSInputFile gridFSInputFile = gridFS.createFile(in);
gridFSInputFile.setId(id);
gridFSInputFile.setFilename(fileName);
gridFSInputFile.save();
}
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 据id返回文件
* @param id
* @return
*/
public static GridFSDBFile getById(Object id){
DBObject query = new BasicDBObject("_id", id);
GridFSDBFile gridFSDBFile = gridFS.findOne(query);
return gridFSDBFile;
}
/**
* 据文件名返回文件,只返回第一个
* @param fileName
* @return
*/
public static GridFSDBFile getByFileName(String fileName){
DBObject query = new BasicDBObject("filename", fileName);
GridFSDBFile gridFSDBFile = gridFS.findOne(query);
return gridFSDBFile;
}
}