Mongodb 是一个开源的no-sql分布式数据库,Mongodb也为我们提供了基于文件的GFS分布式存储系统。因此利用Mongodb我们完全可以实现一个分布式的文件存储以及管理。
下面的内容主要为大家介绍,如何利用java,将大文件存入Mongodb数据库中。我们这里所说的大文件,是指大小在16M以上的文件,这也符合MongodbGFS的说明。
首先我们创建一个java工程,这里我们使用gradle初始化一个java工程,工程结构如下图。
当然这里你也可以使用maven来构建一个java工程,对我们后续工作并不会有影响。
接下来我们去mongodb的官网下载其基于java的驱动包。Mongodbjava驱动程序。
这里我们只需要将这一行,复制到我们工程的build.gradle 文件。
然后刷新gradle,我们可以看到jar包已经添加到我们的程序里。
接下来我们编写调用的示例,我们新建一个类叫做MongdbGFS.java。然后获取一个Mongodb的连接,代码如下:
package mongodbGfs;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
/**
*
* @author zhaotong
*
*/
public class MongodbGFS {
private MongoClient mongoClient;
//我们进行操作的数据库
private MongoDatabase useDatabase;
//初始化
{
mongoClient=new MongoClient("localhost",27017);
useDatabase=mongoClient.getDatabase("zhaotong");
}
}
接下来,我们先不着急写下面的代码,我们先找到一个文件放到我们工程里面,为了我们之后的测试。我在src下面新建了一个文件夹file,里面存放了一个大约21M的pdf文件。
接下里我们开始进行mongodbGFS文件的存储。
首先我们讲一下mongodbGFS存储的一个原理。这里我们引用mongodb官方文档里的一句话(文档地址):