java 使用MongoDB作为数据库三个不同阶段的操作记录

一、前言

这是一个很蛋疼的问题,对于一个新人来说要使用MongoDB到项目中,而且是在自学的情况下。由于技术的不断更新,新人无法知道在Internet上寻找到的技术是否是现在项目中最使用的,在这个问题上本人就很深有体会。绕得晕晕的,查询到的资料有多个版本,下面是对各mongo技术各阶段的一个记录,希望帮助到有同样命运的你!

二、本文主要内容目录

3.1——mongo第一阶段——————-java使用原生的mongo进行操作
3.2——mongo第二阶段——————-spring使用mongoTemplate进行操作
3.3——mongo第三阶段——————-spring boot使用mongoRepository进行操作

三、内容

3.1 mongo第一阶段

java原生代码操作mongodb数据库的两种方式
代码引用:原生mongo两种不同操作

package monAndMysql;  

import java.util.ArrayList;  
import java.util.Date;  
import java.util.List;  
import java.util.Set;  
import org.bson.BsonDocument;  
import org.bson.BsonString;  
import org.bson.Document;  
import org.bson.conversions.Bson;  
import com.mongodb.BasicDBObject;  
import com.mongodb.DB;  
import com.mongodb.DBCollection;  
import com.mongodb.DBCursor;  
import com.mongodb.DBObject;  
import com.mongodb.MongoClient;  
import com.mongodb.MongoCredential;  
import com.mongodb.ServerAddress;  
import com.mongodb.client.FindIterable;  
import com.mongodb.client.MongoCollection;  
import com.mongodb.client.MongoCursor;  
import com.mongodb.client.MongoDatabase;  
import com.mongodb.client.model.Filters;  

/** 
 * mongodb和mysql性能测试 
 * 
 * @author tuzongxun123 
 * 
 */  
public class MonAndMysqlTest {  

    public static void main(String[] args) {  
       mongodbTest();  
    }  

    public static void mongodbTest() {  
       ServerAddress sa = new ServerAddress("192.168.0.7", 27017);  
       List<MongoCredential> mongoCredentialList = newArrayList<MongoCredential>();  
       // java代码连接mongodb3.0数据库验证,userName,dbName,password  
       mongoCredentialList.add(MongoCredential.createMongoCRCredential(  
              "admin", "admin", "123456".toCharArray()));  
       MongoClient client = new MongoClient(sa, mongoCredentialList);  
       // 第一种方式  
       // 第一种方式获取db,该方法已经不建议使用  
       DB mongoDB = client.getDB("mongoTest1");  
       DBCollection collection1 = mongoDB.getCollection("userTest1");  
       // 这里的数据类型是dbobject  
       DBObject document1 = new BasicDBObject();  
       document1.put("name", "mongoTest1");  
       document1.put("createTime", new Date().getTime());  
       // 插入数据  
       collection1.insert(document1);  
       // 查询数据  
       DBCursor cursor1 = collection1.find();  
       System.out.println("第一种方式插入数据的结果:");  
       while (cursor1.hasNext()) {  
           DBObject object = cursor1.next();  
           Set<String> keySet = object.keySet();  
           for (String key : keySet) {  
              System.out.println(key + ":" + object.get(key));  
           }  
       }  
       // 更改数据  
       DBObject query = new BasicDBObject();  
       DBObject update = new BasicDBObject();  
       query.put("name", "mongoTest1");  
       update.put("$set", new BasicDBObject("name", "update1"));  
       collection1.update(query, update);  
       System.out  
           .println("--------------------------------------------------------------------------------------");  
       System.out.println("第一种方式修改数据的结果:");  
       DBCursor cursor11 = collection1.find();  
       while (cursor11.hasNext()) {  
           DBObject object = cursor11.next();  
           Set<String> keySet = object.keySet();  
           for (String key : keySet) {  
              System.out.println(key + ":" + object.get(key));  
           }  
       }  
       // 删除数据  
       DBObject query1 = new BasicDBObject();  
       query1.put("name", "update1");  
       collection1.remove(query1);  
       System.out  
           .println("--------------------------------------------------------------------------------------");  
       System.out.println("第一种方式删除数据的结果:");  
       DBCursor cursor12 = collection1.find();  
       while (cursor12.hasNext()) {  
           DBObject object = cursor12.next();  
           Set<String> keySet = object.keySet();  
           for (String key : keySet) {  
              System.out.println(key + ":" + object.get(key));  
           }  
       }  
       // 第二种方式  
       System.out  
               .println("****************************************************************************");  
       // 第二种方式获取db及插入数据和查询操作。推荐方式  
       MongoDatabase database = client.getDatabase("mongoTest2");  
       // 注意这里的数据类型是document  
       Document document2 = new Document();  
       document2.put("name", "mongoTest2");  
       document2.put("createTime", new Date().getTime());  
       MongoCollection collection2 = database.getCollection("userTest2");  
       // 插入数据  
       collection2.insertOne(document2);  
       // 查询数据,注意这里直接查询出的结果不是游标,还需要转换  
       FindIterable<Document> findIterable = collection2.find();  
       MongoCursor<Document> cursor2 = findIterable.iterator();  
       System.out.println("第二种方式插入数据的结果:");  
       while (cursor2.hasNext()) {  
           Document document = cursor2.next();  
           Set<String> keySet = document.keySet();  
           for (String key : keySet) {  
              System.out.println(key + ":" + document.get(key));  
           }  
       }  
       // 更改数据  

       Bson filter = Filters.eq("name", "mongoTest2");  
       BsonDocument update2 = new BsonDocument();  
       update2.put("$set", new BsonDocument("name", new BsonString("update2")));  
       collection2.updateOne(filter, update2);  
       System.out  
           .println("--------------------------------------------------------------------------------------");  
       MongoCursor<Document> cursor21 = findIterable.iterator();  
       System.out.println("第二种方式更改数据的结果:");  
       while (cursor21.hasNext()) {  
           Document document = cursor21.next();  
           Set<String> keySet = document.keySet();  
           for (String key : keySet) {  
              System.out.println(key + ":" + document.get(key));  
           }  
       }  
       // 删除数据  
       Bson filter2 = Filters.eq("name", "update2");  
       collection2.deleteOne(filter2);  
       System.out  
           .println("--------------------------------------------------------------------------------------");  
       MongoCursor<Document> cursor22 = findIterable.iterator();  
       System.out.println("第二种方式删除数据的结果:");  
       while (cursor22.hasNext()) {  
           Document document = cursor22.next();  
           Set<String> keySet = document.keySet();  
           for (String key : keySet) {  
              System.out.println(key + ":" + document.get(key));  
           }  
       }  
       // 关闭数据库连接  
       client.close();  
    }  

}  

以上操作结果:
结果:

3.2 mongo第二阶段

MongoTemplate位于
import org.springframework.data.mongodb.core.MongoTemplate;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值