在本章中,我们将学习如何设置MongoDB JDBC驱动程序.
在Java程序中开始使用MongoDB之前,您需要确保在计算机上设置了MongoDB JDBC驱动程序和Java.您可以在计算机上查看Java安装Java教程.现在,让我们检查如何设置MongoDB JDBC驱动程序.
您需要从路径
您需要将mongo.jar包含在类路径中.
要连接数据库,需要指定数据库名称,如果数据库不存在则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的 createCollection()方法.使用了mongodb.client.MongoDatabase 类.
以下是创建集合的代码片段 :
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.it1352.com/") .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.it1352.com/OnLineTutorial/Index, by=it1352 }} Document{{ _id = 7452239959673a32646baab8, title = RethinkDB, id = 2, description = database, likes = 200, url = http://www.it1352.com/OnLineTools/Index, by=it1352 }}
更新使用 com.mongodb.client.MongoCollection 类的集合 updateOne()方法中的文档.
以下是程序选择第一个文件 :
import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import com.mongodb.client.model.Updates; import java.util.Iterator; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class UpdatingDocuments { 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 myCollection selected successfully"); collection.updateOne(Filters.eq("id", 1), Updates.set("likes", 150)); System.out.println("Document update successfully..."); // Retrieving the documents after updation // 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 update successfully... Document {{ _id = 5967745223993a32646baab8, title = MongoDB, id = 1, description = database, likes = 150, url = http://www.it1352.com/OnLineTutorial/Index, by =it1352 }}
要从集合中删除文档,您需要使用 deleteOne( com.mongodb.client.MongoCollection 类的方法.
以下是删除文件的程序 :
import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import java.util.Iterator; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class DeletingDocuments { 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"); // Deleting the documents collection.deleteOne(Filters.eq("id", 1)); System.out.println("Document deleted successfully..."); // Retrieving the documents after updation // 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("Inserted Document: "+i); System.out.println(it.next()); i++; } } }
编译时,上述程序会给你以下结果 :
Connected to the database successfully Collection sampleCollection selected successfully Document deleted successfully...
要从数据库中删除集合,您需要使用的drop()方法> com.mongodb.client.MongoCollection class.
以下是删除集合的程序 :
import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class DropingCollection { 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("Collections created successfully"); // Retieving a collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); // Dropping a Collection collection.drop(); System.out.println("Collection dropped successfully"); } }
编译时,上述程序会给你以下结果 :
Connected to the database successfully Collection sampleCollection selected successfully Collection dropped successfully
要列出数据库中的所有集合,您需要使用 com.mongodb.client的 listCollectionNames()方法.MongoDatabase 类.
以下是列出数据库所有集合的程序 :
import com.mongodb.client.MongoDatabase; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; public class ListOfCollection { 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("Collection created successfully"); for (String name : database.listCollectionNames()) { System.out.println(name); } } }
编译时,上述程序会给你以下结果 :
Connected to the database successfully Collection created successfully myCollection myCollection1 myCollection5
剩余的MongoDB方法 save(),limit(),skip(),sort()等,与后续教程中的说明相同.