mongodb基础系列——java操作mongodb实现图片文件功能

来源:互联网 发布:淘宝卖家售假被扣2分 编辑:程序博客网 时间:2024/04/25 21:00
    
   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);                      }}
  
    其中图片也是这么存储的,把图片当作文件来存储。
    运行上述存储结果如下:
   
  
原创粉丝点击