简单学习Java+MongoDB

 更新时间:2016年03月29日 08:51:34   投稿:hebedich  
本文给大家介绍的是如何简单的使用java+MongoDB实现数据调用的问题,非常的实用,有需要的小伙伴可以参考下

MongoDB一些概念

下面以MongoDB和MySql的对比来说明

MySQL MongoDB
database(数据库) db(数据库)
table(表) collection(集合)
row(行记录) document(文档)
column(列) field(字段)
primary key(指定主键) "_id" : ObjectId("******")  自动生成内置主键

Mysql的数据形式如下

同样的数据在MongoDB下类似于JSON键值对,叫BSON,如下

MongoDB的CRUD

windows下安装成功后,使用mongod命令启动服务,使用mongo命令默认连接到test库

1,创建集合

创建user集合:db.createCollection("user")   //不需要定义字段
2,插入
插入name=wangxu,age=27的记录:db.user.insert({"name":"wangxu","age":27})
3,查询
查询全部:db.user.find()
查询name=wangxu的记录:db.user.find({"name":"wangxu"})
4,更新
将name=wangxu的记录age更新成30:db.user.update({name:"wangxu"},{"$set":{"age":30}})
5,删除
删除name=wangxu的记录:db.user.remove({"name":"wangxu"})
删除全部:db.user.remove()
6,删除集合
删除user集合: db.user.drop()

Java调用MongoDB

引入MongoDB的Java驱动包后,测试代码如下:

package com.wx.test;
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
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 测试点:增加,查询,更新,删除
 * 
 * @author wangxu
 * @date 2016-3-27
 */
public class TestMongoDB {
 public static void main(String[] args) {
 // 建立连接,MongoDB默认是没有用户名及密码
 MongoClient mongoClient = new MongoClient("localhost", 27017);
 // 获取test库
 MongoDatabase db = mongoClient.getDatabase("test");
 // 创建集合
 db.createCollection("user");
 // 获取集合
 MongoCollection collection = db.getCollection("user");
 // 插入文档(支持多条)
 Document document = new Document("name", "wangxu").append("age", "27");
 Document document2 = new Document("name", "wangxu_java").append("age",
  "27");
 List<Document> documents = new ArrayList<>();
 documents.add(document);
 documents.add(document2);
 collection.insertMany(documents);
 // 更新wangxu的age为30
 collection.updateMany(Filters.eq("name", "wangxu"), new Document(
  "$set", new Document("age", 30)));
 // 查询文档
 FindIterable<Document> findIterable = collection.find();
 MongoCursor<Document> mongoCursor = findIterable.iterator();
 // 遍历游标
 while (mongoCursor.hasNext()) {
  Document doc = mongoCursor.next();
  System.out.println("name=" + doc.get("name"));
 }
 // 删除wangxu_java
 collection.deleteMany(Filters.eq("name", "wangxu_java"));
 }
}

关于Java驱动包的一个疑问

MongoClient mongoClient = new MongoClient("域不存在", 27017); //建立连接

当我保存上面的代码时,发现不需要处理异常,开始我以为异常被设计成了“非检查异常”,运行时会抛出来,最后测试发现根本不会抛任何异常,后续的CRUD操作时会抛异常,但几乎都是非检查异常,个人感觉这种设计是不是有点不符合Java的异常分类机制?

相关文章

  • Java与Unix时间戳的相互转换详解

    Java与Unix时间戳的相互转换详解

    这篇文章主要为大家详细介绍了Java与Unix时间戳的相互转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Java 轻松掌握字符缓冲流的使用

    Java 轻松掌握字符缓冲流的使用

    这篇文章主要介绍了Java的字符缓冲流用法,字符缓冲流的用途很多,主要是几个构造方法的使用,在项目开发中经常会用到,需要的朋友参考下吧
    2022-04-04
  • 详解Java SpringAOP切面类

    详解Java SpringAOP切面类

    这篇文章主要为大家介绍了Java SpringAOP的切面类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • Spring boot定时任务的原理及动态创建详解

    Spring boot定时任务的原理及动态创建详解

    这篇文章主要给大家介绍了关于Spring boot定时任务的原理及动态创建的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • Spring中@EnableScheduling注解的工作原理详解

    Spring中@EnableScheduling注解的工作原理详解

    这篇文章主要介绍了Spring中@EnableScheduling注解的工作原理详解,@EnableScheduling是 Spring Framework 提供的一个注解,用于启用Spring的定时任务(Scheduling)功能,需要的朋友可以参考下
    2024-01-01
  • Java中的对象流总结(必看篇)

    Java中的对象流总结(必看篇)

    下面小编就为大家带来一篇Java中的对象流总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • MybatisPlus 不修改全局策略和字段注解如何将字段更新为null

    MybatisPlus 不修改全局策略和字段注解如何将字段更新为null

    这篇文章主要介绍了MybatisPlus 不修改全局策略和字段注解如何将字段更新为null,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Spring框架事务属性中事务隔离级别与传播行为全面讲解

    Spring框架事务属性中事务隔离级别与传播行为全面讲解

    这篇文章主要介绍了Spring框架声明式事务的事务隔离级别和事务传播行为,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-11-11
  • Android中Socket通信的实现方法概述

    Android中Socket通信的实现方法概述

    这篇文章主要介绍了Android中Socket通信的实现方法,很有实用价值,需要的朋友可以参考下
    2014-08-08
  • 一文详解Spring的Enablexxx注解使用实例

    一文详解Spring的Enablexxx注解使用实例

    这篇文章主要为大家介绍了一文详解Spring的Enablexxx注解使用实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11

最新评论