个性化阅读
专注于IT技术分析

Java Web数据库开发实战:mongodb增删改查实例详解

在上一篇中我们讨论了:mongodb索引创建、聚合查询、复制集、分片、创建备份和部署,到此为止我们已经把mongodb的基本操作学完了,现在我们将mongodb应用于JavaWeb项目实战,本节我们讨论Java连接mongodb实现增删改查(CRUD)。

一、安装mongodb jdbc驱动程序

准备MongoDB JDBC驱动程序和Java,让我们看看一下如何安装MongoDB JDBC驱动程序。

  1. 你需要从下载jar:下载mongo.jar,请务必下载它的最新版本(或者使用maven或gradle)。
  2. 你需要将mongo.jar包含到类路径中。

二、Java连接到mongodb数据库

连接数据库要指定数据库名称,若数据库不存在,MongoDB会自动创建它。

如下是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.srcmini02.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++; 
     }   
   }
}

七、更新文档

更新文档使用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()等会在后续教程中介绍。

赞(0)
未经允许不得转载:srcmini » Java Web数据库开发实战:mongodb增删改查实例详解

评论 抢沙发

评论前必须登录!