Java + MongoDB Hello World示例

Java MongoDB Hello World

一个简单的Java + MongoDB hello世界示例–如何连接,创建数据库,收集和文档,保存,更新,删除,获取和显示文档(数据)。

使用的工具和技术:

  1. MongoDB 2.2.3
  2. MongoDB-Java驱动程序2.10.1
  3. JDK 1.6
  4. Maven的3.0.3
  5. Eclipse 4.2

PS Maven和Eclipse都是可选的,只是我个人最喜欢的开发工具。

1.创建一个Java项目

使用Maven创建一个简单的Java项目

mvn archetype:generate -DgroupId=com.mkyong.core -DartifactId=mongodb 
  -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

2.获取Mongo Java驱动程序

github下载mongo-java驱动程序。 对于Maven用户,在pom.xml声明mongo-java驱动程序。

pom.xml
<project ...>
  <dependencies>

	<dependency>
		<groupId>org.mongodb</groupId>
		<artifactId>mongo-java-driver</artifactId>
		<version>2.10.1</version>
	</dependency>

  </dependencies>

  <build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>2.3.1</version>
			<configuration>
				<source>1.6</source>
				<target>1.6</target>
			</configuration>
		</plugin>
	        <plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-eclipse-plugin</artifactId>
			<configuration>
				<downloadSources>true</downloadSources>
				<downloadJavadocs>true</downloadJavadocs>
			</configuration>
		</plugin>

	</plugins>
  </build>

</project>

3. Mongo连接

连接到MongoDB服务器。 对于MongoDB版本> = 2.10.0,请使用MongoClient

// Old version, uses Mongo
	Mongo mongo = new Mongo("localhost", 27017);

	// Since 2.10.0, uses MongoClient
	MongoClient mongo = new MongoClient( "localhost" , 27017 );

如果MongoDB处于安全模式,则需要身份验证。

MongoClient mongoClient = new MongoClient();
	DB db = mongoClient.getDB("database name");
	boolean auth = db.authenticate("username", "password".toCharArray());

4. Mongo数据库

获取数据库。 如果数据库不存在,MongoDB将为您创建数据库。

DB db = mongo.getDB("database name");

显示所有数据库。

List<String> dbs = mongo.getDatabaseNames();
	for(String db : dbs){
		System.out.println(db);
	}

5. Mongo系列

获取集合/表。

DB db = mongo.getDB("testdb");
	DBCollection table = db.getCollection("user");

显示来自选定数据库的所有集合。

DB db = mongo.getDB("testdb");
	Set<String> tables = db.getCollectionNames();
			
	for(String coll : tables){
		System.out.println(coll);
	}

注意
在RDBMS中,集合等于表。

6.保存示例

将文档(数据)保存到名为“用户”的集合(表)中。

DBCollection table = db.getCollection("user");
	BasicDBObject document = new BasicDBObject();
	document.put("name", "mkyong");
	document.put("age", 30);
	document.put("createdDate", new Date());
	table.insert(document);

请参阅此Java MongoDB插入示例

7.更新示例

更新一个文件,其中“ name = mkyong”。

DBCollection table = db.getCollection("user");
	
	BasicDBObject query = new BasicDBObject();
	query.put("name", "mkyong");

	BasicDBObject newDocument = new BasicDBObject();
	newDocument.put("name", "mkyong-updated");
				
	BasicDBObject updateObj = new BasicDBObject();
	updateObj.put("$set", newDocument);

	table.update(query, updateObj);

请参考此Java MongoDB更新示例

8.查找例子

查找“名称= mkyong”的文档,并使用DBCursor显示

DBCollection table = db.getCollection("user");

	BasicDBObject searchQuery = new BasicDBObject();
	searchQuery.put("name", "mkyong");

	DBCursor cursor = table.find(searchQuery);

	while (cursor.hasNext()) {
		System.out.println(cursor.next());
	}

请参考此Java MongoDB搜索查询示例

9.删除示例

在“名称= mkyong”中找到文档,然后将其删除。

DBCollection table = db.getCollection("user");

	BasicDBObject searchQuery = new BasicDBObject();
	searchQuery.put("name", "mkyong");

	table.remove(searchQuery);

请参考此Java MongoDB删除示例

10.你好世界

让我们回顾一个完整的Java + MongoDB示例,查看说明。

App.java
package com.mkyong.core;

import java.net.UnknownHostException;
import java.util.Date;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.MongoClient;
import com.mongodb.MongoException;

/**
 * Java + MongoDB Hello world Example
 * 
 */
public class App {
  public static void main(String[] args) {

    try {

	/**** Connect to MongoDB ****/
	// Since 2.10.0, uses MongoClient
	MongoClient mongo = new MongoClient("localhost", 27017);

	/**** Get database ****/
	// if database doesn't exists, MongoDB will create it for you
	DB db = mongo.getDB("testdb");

	/**** Get collection / table from 'testdb' ****/
	// if collection doesn't exists, MongoDB will create it for you
	DBCollection table = db.getCollection("user");

	/**** Insert ****/
	// create a document to store key and value
	BasicDBObject document = new BasicDBObject();
	document.put("name", "mkyong");
	document.put("age", 30);
	document.put("createdDate", new Date());
	table.insert(document);

	/**** Find and display ****/
	BasicDBObject searchQuery = new BasicDBObject();
	searchQuery.put("name", "mkyong");

	DBCursor cursor = table.find(searchQuery);

	while (cursor.hasNext()) {
		System.out.println(cursor.next());
	}

	/**** Update ****/
	// search document where name="mkyong" and update it with new values
	BasicDBObject query = new BasicDBObject();
	query.put("name", "mkyong");

	BasicDBObject newDocument = new BasicDBObject();
	newDocument.put("name", "mkyong-updated");

	BasicDBObject updateObj = new BasicDBObject();
	updateObj.put("$set", newDocument);

	table.update(query, updateObj);

	/**** Find and display ****/
	BasicDBObject searchQuery2 
	    = new BasicDBObject().append("name", "mkyong-updated");

	DBCursor cursor2 = table.find(searchQuery2);

	while (cursor2.hasNext()) {
		System.out.println(cursor2.next());
	}

	/**** Done ****/
	System.out.println("Done");

    } catch (UnknownHostException e) {
	e.printStackTrace();
    } catch (MongoException e) {
	e.printStackTrace();
    }

  }
}

输出…

{ "_id" : { "$oid" : "51398e6e30044a944cc23e2e"} , "name" : "mkyong" , "age" : 30 , "createdDate" : { "$date" : "2013-03-08T07:08:30.168Z"}}
{ "_id" : { "$oid" : "51398e6e30044a944cc23e2e"} , "age" : 30 , "createdDate" : { "$date" : "2013-03-08T07:08:30.168Z"} , "name" : "mkyong-updated"}
Done

让我们使用mongo控制台检查创建的数据库“ testdb”,集合“ user”和文档。

$ mongo
MongoDB shell version: 2.2.3
connecting to: test

> show dbs
testdb	0.203125GB

> use testdb
switched to db testdb

> show collections
system.indexes
user
> db.user.find()
{ "_id" : ObjectId("51398e6e30044a944cc23e2e"), "age" : 30, "createdDate" : ISODate("2013-03-08T07:08:30.168Z"), "name" : "mkyong-updated" }

下载源代码

下载它– Java-mongodb-hello-world-example.zip (13KB)

参考文献

  1. Java驱动程序入门
  2. Java-MongoDB驱动程序

翻译自: https://mkyong.com/mongodb/java-mongodb-hello-world-example/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值