在上一篇中我们讨论了:mongodb索引创建、聚合查询、复制集、分片、创建备份和部署,到此为止我们已经把mongodb的基本操作学完了,现在我们将mongodb应用于JavaWeb项目实战,本节我们讨论Java连接mongodb实现增删改查(CRUD)。
一、安装mongodb jdbc驱动程序准备MongoDB JDBC驱动程序和Java,让我们看看一下如何安装MongoDB JDBC驱动程序。
- 你需要从下载jar:下载mongo.jar,请务必下载它的最新版本(或者使用maven或gradle)。
- 你需要将mongo.jar包含到类路径中。
如下是Java连接到数据库的代码片段:
public class ConnectToDB { public static void main( String args[] ) {// 创建一个Mongo客户端
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// 创建凭证
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
System.out.println("成功连接到数据库!");
// 访问数据库
MongoDatabase database = mongo.getDatabase("myDb");
System.out.println("凭证 ::"+ credential);
}
}
三、创建集合要创建集合,请使用com.mongodb.client. MongoDatabase的createCollection()方法,如下是创建集合的代码片段:
public class CreatingCollection { public static void main( String args[] ) {// 创建一个Mongo客户端
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// 创建凭证
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
System.out.println("成功连接到数据库!");
//访问数据库
MongoDatabase database = mongo.getDatabase("myDb");
//创建mongodb集合
database.createCollection("sampleCollection");
System.out.println("成功创建集合!");
}
}
四、获取或选择一个集合获取或选择一个集合使用com.mongodb.client. MongoDatabase类的getCollection()方法。
如下是获取/选择集合的程序:
public class selectingCollection { public static void main( String args[] ) {// 创建一个Mongo客户端
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// 创建凭证
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
System.out.println("成功连接到数据库!");
//访问数据库
MongoDatabase database = mongo.getDatabase("myDb");
//创建mongodb集合
database.createCollection("sampleCollection");
System.out.println("成功创建集合!");
// 获取一个集合
MongoCollection<
Document> collection = database.getCollection("myCollection");
System.out.println("成功获取集合!");
}
}
五、插入文档插入文档使用com.mongodb.client. MongoCollection类的insert()方法。
如下是插入文档的代码片段:
public class selectingCollection { public static void main( String args[] ) {// 创建一个Mongo客户端
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// 创建凭证
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
System.out.println("成功连接到数据库!");
//访问数据库
MongoDatabase database = mongo.getDatabase("myDb");
//创建mongodb集合
database.createCollection("sampleCollection");
System.out.println("成功创建集合!");
// 获取一个集合
MongoCollection<
Document> collection = database.getCollection("myCollection");
System.out.println("成功获取集合!");
Document document = new Document("title", "MongoDB")
.append("id", 1)
.append("description", "database")
.append("likes", 100)
.append("url", "http://www.srcmini.com/mongodb/")
.append("by", "once");
collection.insertOne(document);
System.out.println("成功插入文档!");
}
}
六、获取所有文档要从集合中获取所有文档,请使用com.mongodb.client. MongoCollection类的find()方法,此方法返回迭代器用于遍历。
如下是获取所有文档的程序:
public class selectingCollection { public static void main( String args[] ) {// 创建一个Mongo客户端
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// 创建凭证
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
System.out.println("成功连接到数据库!");
//访问数据库
MongoDatabase database = mongo.getDatabase("myDb");
//创建mongodb集合
database.createCollection("sampleCollection");
System.out.println("成功创建集合!");
// 获取一个集合
MongoCollection<
Document> collection = database.getCollection("myCollection");
System.out.println("成功获取集合!");
// 获取可迭代对象
FindIterable<
Document> iterDoc = collection.find();
int i = 1;
// 获取迭代器
Iterator it = iterDoc.iterator();
// 遍历所有文档
while (it.hasNext()) {
System.out.println(it.next());
i++;
}
}
}
七、更新文档【Java Web数据库开发实战(mongodb增删改查实例详解)】更新文档使用com.mongodb.client. MongoCollection类的updateOne()方法。
如下是获取第一个文档更新的程序:
public class selectingCollection { public static void main( String args[] ) {// 创建一个Mongo客户端
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// 创建凭证
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
System.out.println("成功连接到数据库!");
//访问数据库
MongoDatabase database = mongo.getDatabase("myDb");
//创建mongodb集合
database.createCollection("sampleCollection");
System.out.println("成功创建集合!");
// 获取一个集合
MongoCollection<
Document> collection = database.getCollection("myCollection");
System.out.println("成功获取集合!");
collection.updateOne(Filters.eq("id", 1), Updates.set("likes", 150));
System.out.println("成功更新文档...");
// 更新后获取文档
// 获取可迭代对象
FindIterable<
Document> iterDoc = collection.find();
int i = 1;
// 获取遍历器
Iterator it = iterDoc.iterator();
// 遍历所有文档
while (it.hasNext()) {
System.out.println(it.next());
i++;
}
}
}
八、删除文档删除文档使用com.mongodb.client. MongoCollection类的deleteOne()方法。
如下是删除文档的程序:
public class selectingCollection { public static void main( String args[] ) {// 创建一个Mongo客户端
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// 创建凭证
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
System.out.println("成功连接到数据库!");
//访问数据库
MongoDatabase database = mongo.getDatabase("myDb");
//创建mongodb集合
database.createCollection("sampleCollection");
System.out.println("成功创建集合!");
// 获取一个集合
MongoCollection<
Document> collection = database.getCollection("myCollection");
System.out.println("成功获取集合!");
// 删除文档
collection.deleteOne(Filters.eq("id", 1));
System.out.println("成功删除文档...");
// 删除后重新获取文档
// 获取可迭代对象
FindIterable<
Document> iterDoc = collection.find();
int i = 1;
// 获取迭代器
Iterator it = iterDoc.iterator();
// 遍历所有文档
while (it.hasNext()) {
System.out.println("已插入的文档": "+i);
System.out.println(it.next());
i++;
}
}
}
九、删除集合要从数据库中删除一个集合,需要使用com.mongodb.client. MongoCollection类的drop()方法。
如下是删除集合的程序:
public class selectingCollection { public static void main( String args[] ) {// 创建一个Mongo客户端
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// 创建凭证
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
System.out.println("成功连接到数据库!");
//访问数据库
MongoDatabase database = mongo.getDatabase("myDb");
//创建mongodb集合
database.createCollection("sampleCollection");
System.out.println("成功创建集合!");
// 获取一个集合
MongoCollection<
Document> collection = database.getCollection("sampleCollection");
// 删除一个集合
collection.drop();
System.out.println("成功删除集合");
}
}
十、列出所有集合列出数据库所有集合使用com.mongodb.client. MongoDatabase类的listCollectionNames()方法。
如下是列出数据库所有集合的程序:
public class selectingCollection { public static void main( String args[] ) {// 创建一个Mongo客户端
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// 创建凭证
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
System.out.println("成功连接到数据库!");
//访问数据库
MongoDatabase database = mongo.getDatabase("myDb");
System.out.println("成功创建集合");
for (String name : database.listCollectionNames()) {
System.out.println(name);
}
}
}
以上就Java连接mongodb数据库实现增删改查的内容,其余的MongoDB方法save()、limit()、skip()、sort()等会在后续教程中介绍。
推荐阅读
- 精通php mongodb数据库开发( 增删改查(CRUD)入门操作完整实例详解)
- mongodb高阶(索引创建、聚合查询、复制集、分片、创建备份和部署)
- 如何在一个ng-click指令中添加许多功能()
- 计算从mXn矩阵的左上到右下的所有可能路径
- 算法设计(打印最长的子字符串而不重复字符)
- Python如何将字典作为关键字参数传递(示例)
- 如何在JavaScript中实现消除抖动(代码实现示例)
- PHP常量用法详细教程和代码示例
- JavaScript中的多维数组用法指南