java 使用MongoDB作为数据库三个不同阶段的操作记录
来源:互联网 发布:双肩背包 知乎 编辑:程序博客网 时间:2024/06/05 07:38
一、前言
这是一个很蛋疼的问题,对于一个新人来说要使用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
- java 使用MongoDB作为数据库三个不同阶段的操作记录
- 数据库设计的三个阶段
- java的不同阶段
- java反射的三个阶段
- Oracle笔记:数据库启动的三个阶段
- oracle数据库启动的三个阶段
- Python操作MongoDB 新建不同的collection 批量插入数据库
- java 操作MongoDB数据库
- java操作MongoDB数据库
- java操作MongoDB数据库
- java操作mongodb数据库
- java操作MongoDB数据库
- java操作mongodb数据库
- java操作MongoDB数据库
- Java操作mongodb数据库
- java操作MongoDB数据库
- java操作mongoDB数据库
- java操作MongoDB数据库
- FFT后的物理意义
- 数据库编程入门(二)-存储过程和存储函数
- GO命令
- window环境下安装springcli
- MySQL 5.7 for Windows 解压缩版配置安装
- java 使用MongoDB作为数据库三个不同阶段的操作记录
- openCV—霍夫变换原理(直白易懂)
- java备份以及还原mysql数据库
- 检错码之奇偶校验编码
- MATLAB_embeded_matlab_function
- ScrollView 属性
- JAVA多线程和并发基础面试题
- 将博客搬至51CTO
- canvas 绘制心电图