日期:2014-05-16  浏览次数:20587 次

如何用Java操作MongoDB【转】

上一篇文章介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过前一篇文章我们对MongoDB有了全面的认识和理解。现在我们就用Java来操作MongoDB的数据。

开发环境:

  1. System:Windows
  2. IDE:eclipse、MyEclipse 8
  3. Database:mongoDB

开发依赖库:

  1. JavaEE5、mongo-2.5.3.jar、junit-4.8.2.jar
  2. Email:hoojo_@126.com
  3. Blog:http://blog.csdn.net/IBM_hoojo

一、准备工作

1、 首先,下载mongoDB对Java支持的驱动包

驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads

mongoDB对Java的相关支持、技术:http://www.mongodb.org/display/DOCS/Java+Language+Center

驱动源码下载:https://download.github.com/mongodb-mongo-java-driver-r2.6.1-7-g6037357.zip

在线查看源码:https://github.com/mongodb/mongo-java-driver

2、 下面建立一个JavaProject工程,导入下载下来的驱动包。即可在Java中使用mongoDB,目录如下:

#FormatImgID_0#

二、Java操作MongoDB示例

在本示例之前你需要启动mongod.exe的服务,启动后,下面的程序才能顺利执行;

1、 建立SimpleTest.java,完成简单的mongoDB数据库操作

Mongo mongo = new Mongo();

这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。

DB db = mongo.getDB(“test”);

这样就获得了一个test的数据库,如果mongoDB中没有创建这个数据库也是可以正常运行的。如果你读过上一篇文章就知道,mongoDB可以在没有创建这个数据库的情况下,完成数据的添加操作。当添加的时候,没有这个库,mongoDB会自动创建当前数据库。

得到了db,下一步我们要获取一个“聚集集合DBCollection”,通过db对象的getCollection方法来完成。

DBCollection users = db.getCollection("users");

这样就获得了一个DBCollection,它相当于我们数据库的“表”。

查询所有数据

  1. package ?com.hoo.test; ?
  2. ? ?
  3. import ?java.net.UnknownHostException; ?
  4. import ?com.mongodb.DB; ?
  5. import ?com.mongodb.DBCollection; ?
  6. import ?com.mongodb.DBCursor; ?
  7. import ?com.mongodb.Mongo; ?
  8. import ?com.mongodb.MongoException; ?
  9. import ?com.mongodb.util.JSON; ?
  10. ? ?
  11. /** ?
  12. ?*?function: MongoDB?简单示例 ?
  13. ?*?@author?hoojo ?
  14. ?*?@createDate?2011-5-24?下午02:42:29 ?
  15. ?*?@file?SimpleTest.java ?
  16. ?*?@package?com.hoo.test ?
  17. ?*?@project?MongoDB ?
  18. ?*?@blog?http://blog.csdn.net/IBM_hoojo ?
  19. ?*?@email?hoojo_@126.com ?
  20. ?*?@version?1.0 ?
  21. ?*/ ?
  22. public ? class ?SimpleTest?{ ?
  23. ? ?
  24. ???? public ? static ? void ?main(String[]?args)? throws ?UnknownHostException,?MongoException?{ ?
  25. ????????Mongo?mg?=? new ?Mongo(); ?
  26. ???????? //查询所有的Database ?
  27. ???????? for ?(String?name?:?mg.getDatabaseNames