Java 程序访问 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原创翻译