`

Java + MongoDB 实现 hello world 例子(译)

 
阅读更多

 

原文出自:http://www.mkyong.com/mongodb/java-mongodb-hello-world-example/

返回目录:http://ysj5125094.iteye.com/blog/2192754 

 

 

Java + MongoDB hello world example

 

A simple Java + MongoDB hello world example – how to connect, create database, collection and document, save, update, remove, get and display document (data).

译:一个简单的利用Java + MongoDB实现hello world例子 —— 如何连接,创建数据库、集合和文档,保存更新删除获取和显示文档(数据

 

Tools and technologies used :

译:使用的工具和技术

  1. MongoDB 2.2.3
  2. MongoDB-Java-Driver 2.10.1
  3. JDK 1.6
  4. Maven 3.0.3
  5. Eclipse 4.2

P.S Maven and Eclipse are both optional, just my personal favorite development tool.

译:P.S Maven和Eclipse是可选的只是我个人最喜欢的开发工具

 

1. Create a Java Project

Create a simple Java project with Maven.

译:创建一个简单的Maven Java project项目。

 

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

 

2. Get Mongo Java Driver

Download mongo-java driver from github. For Maven users, declares mongo-java driver in pom.xml.

译:从github下载mongo-java驱动。mgongo-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 Connection

Connect to MongoDB server. For MongoDB version >= 2.10.0, uses MongoClient.

译:使用MongoClient连接MongoDB server。MongoDB版本 >= 2.10.0

 

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

 

If MongoDB in secure mode, authentication is required.

译:如果已经在安全模式下认证是必需的

 

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

 

4. Mongo Database

Get database. If the database doesn’t exist, MongoDB will create it for you.

译:获取数据库。如果数据库不存在,那么MongoDB会自动创建。

 

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

 

Display all databases.

译:显示所有数据库。

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

 

5. Mongo Collection

Get collection / table.

译:获取集合 / 表。

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

 

Display all collections from selected database.

译:从选择的数据库中显示所有集合。

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

 

Note
In RDBMS, collection is equal to table.

在关系型数据库中,集合 = 表。

 

6. Save example

Save a document (data) into a collection (table) named “user”.

译:在"user"集合(表)中保存一个文档(数据)

	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);

Refer to this Java MongoDB insert example.

译:请参数这个Java MongoDB插入的例子。

 

7. Update example

Update a document where “name=mkyong”.

译:更新条件为“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);

Refer to this Java MongoDB update example. 

 

8. Find example

Find document where “name=mkyong”, and display it with DBCursor

译:查询条件为"name=mkyong"的文档,并显示所有数据游标内容。

	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());
	}

Refer to this Java MongoDB search query example. 

 

9. Delete example

Find document where “name=mkyong”, and delete it.

译:查询条件为"name=mkyong"的文档并删除他。

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

Refer to this Java MongoDB delete example. 

 

10. Hello World

Let review a complete Java + MongoDB example, see comments for self-explanatory.

译:让我们一起来审查已完成的Java + MongoDB例子,

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();
    }
 
  }
}

 

Output…

{ "_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

 

Let use mongo console to check the created database “testdb”, collection “user”, and document.

译:让我们用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" }

 

Download Source Code

附件可以下载源代码

 

References

  1. Getting started with Java driver
  2. Java-MongoDB driver

 

 

1
1
分享到:
评论

相关推荐

    java操作mongodb

    document.put("msg", "hello world mongoDB in Java"); // 插入文档到集合中 collection.insert(document); // 创建查询条件 BasicDBObject searchQuery = new BasicDBObject(); searchQuery.put("id", 1001...

    spring-boot-helloworld.zip

    总之,"spring-boot-helloworld.zip" 压缩包提供了一个 Spring Boot 入门的例子,通过这个例子,你可以学习到如何创建、配置和运行一个基本的 Spring Boot 应用,并理解其核心概念。这将是你进一步探索 Spring Boot ...

    My Hello World

    public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } ``` 这些简单的代码示例展示了如何在不同的语言中输出文本,是理解语言基本语法和运行环境的...

    Spring Boot Hello World 入门源代码,直接返回一个http的JSON的输出

    在这个例子中,`/hello` 是请求的路径,当用户访问 `/hello` 时,服务器将返回一个 JSON 对象,内容是 `{"message":"Hello, Spring Boot!"}`。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,...

    spring boot restful服务小例子

    它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者能够快速地创建出稳定且生产级别的基于 Spring 的应用。 在“spring boot restful服务小例子”中,我们重点讨论的是如何...

    springboot入门例子

    例如,`@GetMapping("/hello")` 可以用来处理 GET 请求,返回 "Hello, World!"。 5. **后台逻辑**:`@Service` 注解用于标记业务逻辑层的类,这些类通常会包含一些处理数据和业务规则的方法。你可以使用 `@...

    springboot-demo.zip

    通过"springboot-demo.zip",你可以逐步学习并实践这些概念,从创建第一个"Hello World"应用,到添加数据访问层,再到构建完整的RESTful API。这将帮助你快速掌握SpringBoot的使用,为后续的Java开发打下坚实基础。

    简化企业级开发

    - **代码示例**:在上面的部分内容中,提到了如何使用Spring来创建一个简单的Hello World程序。具体步骤包括: - 创建Spring的配置文件(如`beans.xml`)。 - 在配置文件中定义Bean及其属性。 - 使用`...

    spring boot整套学习代码

    在 SpringBoot-Learning 压缩包中,你可能找到包含这些知识点的示例代码,从基础的“Hello World”到复杂的微服务配置,逐步深入学习 Spring Boot 的使用。通过实践这些代码,你可以更好地理解 Spring Boot 的工作...

    rest-api-springboot

    这个例子中,`/greeting`路径会响应GET请求,并返回"Hello, World!"。 Spring Boot还支持使用JSON数据格式进行数据交换。我们可以使用`@RequestBody`和`@ResponseBody`注解来绑定HTTP请求体和响应体。例如: ```...

    express-course:学习的代码,示例和说明后端Framework Express.js

    与Express的Hello World 中间件/ 路由/ https http-objects / 蜜蜂/ 观看次数/ 例子 Express-GuestBook-App API DarkSky 有用的命令 要启动一个新项目: npm init --yes 要安装Express框架: npm install ...

    notes_application

    上述代码创建了一个简单的服务器,监听3000端口,当收到请求时,它会返回一个"Hello World"的响应。`createServer`函数接受一个回调函数作为参数,这个函数会在每次有新的请求到达时被调用。`req`对象代表请求,`res...

Global site tag (gtag.js) - Google Analytics