作者:博艺 | 来源:互联网 | 2014-05-28 16:53
NoSQL数据库因为其良好的可伸缩性日益受关注,如果使用得当的话,NoSQL可以带来很大的提升。而MongoDB就是一个用C++开发的开源的高可伸缩性的NoSQL数据库。本文将介绍如何在Java程序中使用MongoDB数据库(Windows平台)。1.安装MongoDB安装非
NoSQL 数据库因为其良好的可伸缩性日益受关注,如果使用得当的话,NoSQL 可以带来很大的提升。而 MongoDB
就是一个用 C++ 开发的开源的高可伸缩性的 NoSQL 数据库。
本文将介绍如何在 Java 程序中使用 MongoDB 数据库(Windows平台)。
1. 安装 MongoDB
安装非常简单,你可以从 MongoDB 官方的文档中来获取帮助,包括 Windows、Linux 和 OS X
系统:
http://www.mongodb.org/display/DOCS/Quickstart
2. 启动 MongoDB 服务器
安装完毕后只需要运行 bin 目录下的 mongod.exe 即可启动。MongoDB 服务器默认运行的端口是
27017,而数据存放于 /data/db 目录,该目录必须在安装时候创建好。
3. 启动 MongoDB 交互式命令行
运行 mongo.exe 程序即可启动 MongoDB 交互式命令行环境。
4. 创建一个 MongoDB 数据库
假设我们要创建一个名为 company 的数据库,只需要在 MongoDB 命令行环境中运行:
use company
记住,MongoDB 在你插入任何数据之前并不会创建数据库。
你可以使用下面命令来查看系统中已有的数据库,你会发现你刚创建的 company 并不在其中。
show dbs;
5. 插入数据
我们可以通过下面命令在 company 数据库中创建集合(相当于SQL数据库中的表),名为
employees
employee = {name : "A", no : 1}
db.employees.save(employee)
要查看集合中的数据可以使用如下命令:
db.users.find();
6. 编写 Java 程序访问 MongoDB
下面是一个简单的 Java 程序用来连接到我们刚创建的数据库并插入数据,然后进行查询。在此之前你需要下载 MongoDB 的
Java 驱动包:MongoDB Java Driver
package com.eviac.blog.mongo;
import java.net.UnknownHostException;
import com.
mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
public class MongoDBClient {
public static void main(String[] args) {
try {
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("company");
DBCollection collection = db.getCollection("employees");
BasicDBObject employee = new BasicDBObject();
employee.put("name", "Hannah");
employee.put("no", 2);
collection.insert(employee);
BasicDBObject searchEmployee = new BasicDBObject();
searchEmployee.put("no", 2);
DBCursor cursor = collection.find(searchEmployee);
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
System.out.println("The Search Query has Executed!");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
}
运行结果:
{ "_id" : { "$oid" : "4fec74dc907cbe9445fd2d70"} , "name" : "Hannah" , "no" : 2}
The Search Query has Executed!
英文原文, OSCHINA原创翻译