java中MongoDB的简单应用实例

来源:互联网 发布:windows安装盘下载 编辑:程序博客网 时间:2024/05/17 23:32

1 首先加载 MongoDB的jar包。下载Jar包链接

2然后进行相应的配置。如我当前项目是在web-pom.xml 的的节点下配置。

        <dependency>            <groupId>org.mongodb</groupId>            <artifactId>mongo-java-driver</artifactId>            <version>2.9.3</version>        </dependency>

下面写一个上传文件的最简单的实现。主要是体现mongoDB的使用方法。

    /**     *  @MethodName : uploadFile     * @Description : 上传文件     * @param file :文件,File类型     * @param id    :唯一标示文件,可根据id查询到文件.必须设置     * @param dbName :库名,每个系统使用一个库     * @param collectionName:集合名,如果传入的集合名库中没有,则会自动新建并保存     * @param map:放入你想要保存的属性,例如文件类型(“congtentType”".jpg"),字符串类型,区分大小写,如果属性没有的话会自动创建并保存     */   public void uploadFile(File file ,String id,String dbName,String collectionName,LinkedHashMap<String, Object> map){       //把mongoDB的数据库地址配置在外部。        try {            Mongo mongo =getMongo();             //每个系统用一个库            DB db= mongo.getDB(dbName);            System.out.println(db.toString());            //每个库中可以分子集            GridFS gridFS= new GridFS(db,collectionName);            // 创建gridfsfile文件            GridFSFile gridFSFile = gridFS.createFile(file);            //判断是否已经存在文件,如果存在则先删除            GridFSDBFile gridFSDBFile=getFileById(id, dbName, collectionName);            if(gridFSDBFile!=null){                deleteFile(id, dbName, collectionName);            }            //将文件属性设置到            gridFSFile.put("_id", id);            //循环设置的参数            if (map != null && map.size() > 0) {                for (String key : map.keySet()) {                    gridFSFile.put(key, map.get(key));                }            }            //保存上传            gridFSFile.save();        } catch (Exception e) {            e.printStackTrace();        }    }

上述代码中用到的 getFileById方法,即根据id获取文件。

   /**    * @MethodName   : getFileById    * @Description  : 根据Id获得文件    * @param id :文件Id    * @param dbName: 数据库名    * @param collectionName:集合名    * @return GridFSDBFile    */   public GridFSDBFile getFileById(String id,String dbName,String collectionName){       GridFSDBFile gridFSDBFile=null;       try {            //获得mongoDB数据库连接。            Mongo mongo =getMongo();             //获得库            DB db= mongo.getDB(dbName);            //获得子集            GridFS gridFS= new GridFS(db,collectionName);            //获得文件            DBObject query=new BasicDBObject("_id", id);            gridFSDBFile=gridFS.findOne(query);        } catch (Exception e) {            e.printStackTrace();        }       //返回数据       return gridFSDBFile;   }

第一个代码段中调用到的deleteFile文件。

  /**      * @MethodName   : deleteFile    * @Description  : 删除文件    * @param id:文件对应的id    * @param dbName:文件所在的库    * @param collectionName:文件所在的集合    */   public void deleteFile(String id,String dbName,String collectionName){        try {            //获得mongoDB数据库连接。            Mongo mongo =getMongo();             //获得库            DB db= mongo.getDB(dbName);            //获得子集            GridFS gridFS= new GridFS(db,collectionName);            //删除文件            DBObject query=new BasicDBObject("_id", id);            gridFS.remove(query);        } catch (Exception e) {            e.printStackTrace();        }   }

调用的时候,直接调用我们写好的uploadFile类即可。其中dbName 是我们用到的数据库,collectionName是数据库中集合的名字。看看上传成功后数据库的位置。如下:
这里写图片描述

当然这仅仅是初步的使用。关于mongoDB在项目中的应用及其原理性的知识我们随着日后学习和使用的深入,再进行详细的介绍。

0 0