java中MongoDB的简单应用实例

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值