Java操作MongoDB的例子(一)
Java操作MongoDB的例子(一)
在本章中,我们将学习使用JDBC驱动程序连接MongoDB 。
驱动安装
在Java程序中开始使用MongoDB之前,需要确保在计算机上设置了MongoDB JDBC驱动程序和Java。您可以查看Java教程以了解计算机上的Java安装。现在,让我们检查如何设置MongoDB JDBC驱动程序。
您需要从https://github.com/mongodb/mongo-java-driver下载MongoDB的JDBC驱动。请确保下载它的最新版本。
您需要将mongo.jar包含在java项目的classpath中。
连接数据库
要连接数据库,需要指定数据库名称,如果数据库不存在,MongoDB将自动创建它。
import com.mongodb.client.MongoDatabase; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class ConnectToDB { public static void main( String args[] ) { // Creating a Mongo client MongoClient mongo = new MongoClient( "localhost" , 27017 ); // Creating Credentials MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Connected to the database successfully"); // Accessing the database MongoDatabase database = mongo.getDatabase("myDb"); System.out.println("Credentials ::"+ credential); } }
现在,让我们编译并运行上面的程序来创建我们的数据库myDb,如下所示。
$javac ConnectToDB.java $java ConnectToDB
执行时,上面的程序会给出以下输出。
Connected to the database successfully Credentials ::MongoCredential{ mechanism = null, userName = 'sampleUser', source = 'myDb', password = <hidden>, mechanismProperties = {} }
创建一个集合
要创建集合,请使用com.mongodb.client.MongoDatabase类的createCollection()方法。
import com.mongodb.client.MongoDatabase; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class CreatingCollection { public static void main( String args[] ) { // Creating a Mongo client MongoClient mongo = new MongoClient( "localhost" , 27017 ); // Creating Credentials MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Connected to the database successfully"); //Accessing the database MongoDatabase database = mongo.getDatabase("myDb"); //Creating a collection database.createCollection("sampleCollection"); System.out.println("Collection created successfully"); } }
编译运行时,上面的程序会给出以下结果-
Connected to the database successfully Collection created successfully
获取/选择集合
要从数据库中获取/选择集合,请使用com.mongodb.client.MongoDatabase类的getCollection()方法。
import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class selectingCollection { public static void main( String args[] ) { // Creating a Mongo client MongoClient mongo = new MongoClient( "localhost" , 27017 ); // Creating Credentials MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Connected to the database successfully"); // Accessing the database MongoDatabase database = mongo.getDatabase("myDb"); // Creating a collection System.out.println("Collection created successfully"); // Retieving a collection MongoCollection<Document> collection = database.getCollection("myCollection"); System.out.println("Collection myCollection selected successfully"); } }
编译运行时,上面的程序会给出以下结果-
Connected to the database successfully Collection created successfully Collection myCollection selected successfully
插入一个文档
要在MongoDB中插入文档,请使用com.mongodb.client.MongoCollection类的insert()方法。
import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class InsertingDocument { public static void main( String args[] ) { // Creating a Mongo client MongoClient mongo = new MongoClient( "localhost" , 27017 ); // Creating Credentials MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Connected to the database successfully"); // Accessing the database MongoDatabase database = mongo.getDatabase("myDb"); // Retrieving a collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); System.out.println("Collection sampleCollection selected successfully"); Document document = new Document("title", "MongoDB") .append("id", 1) .append("description", "database") .append("likes", 100) .append("url", "http://www.tutorialspoint.com/mongodb/") .append("by", "tutorials point"); collection.insertOne(document); System.out.println("Document inserted successfully"); } }
编译运行时,上面的程序会给出以下结果-
Connected to the database successfully Collection sampleCollection selected successfully Document inserted successfully
检索所有文档
要从集合中选择所有文档,请使用com.mongodb.client.MongoCollection类的find()方法。此方法返回游标,因此需要迭代此游标。
import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import java.util.Iterator; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class RetrievingAllDocuments { public static void main( String args[] ) { // Creating a Mongo client MongoClient mongo = new MongoClient( "localhost" , 27017 ); // Creating Credentials MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Connected to the database successfully"); // Accessing the database MongoDatabase database = mongo.getDatabase("myDb"); // Retrieving a collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); System.out.println("Collection sampleCollection selected successfully"); // Getting the iterable object FindIterable<Document> iterDoc = collection.find(); int i = 1; // Getting the iterator Iterator it = iterDoc.iterator(); while (it.hasNext()) { System.out.println(it.next()); i++; } } }
编译运行时,上面的程序会给出以下结果-
Document{{ _id = 5967745223993a32646baab8, title = MongoDB, id = 1, description = database, likes = 100, url = http://www.tutorialspoint.com/mongodb/, by = tutorials point }} Document{{ _id = 7452239959673a32646baab8, title = RethinkDB, id = 2, description = database, likes = 200, url = http://www.tutorialspoint.com/rethinkdb/, by = tutorials point }}
未完待续。。。