`

Java操作MongoDB例子—增删改查

 
阅读更多
import java.net.UnknownHostException;
import java.util.Iterator;
import java.util.Set;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

public class MongoMain {
	
	static DB db = null;
	static DBCollection coll = null;
	
	static {
		 Mongo m = null;
		try {
			//m = new Mongo();//默认本地
			//m = new Mongo("127.0.0.1");//默认端口
			m = new Mongo("127.0.0.1",27017);
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (MongoException e) {
			e.printStackTrace();
		}
		
		//获取名为 test 的数据库,不存在的情况下创建
		db = m.getDB("test");
		
		//登录数据库(用户名:test,密码:test)
		boolean auth = db.authenticate("test", "test".toCharArray());
		if(auth){
			//只有admin中的用户才有此权限(show dbs)
			//获取所有数据库,不显示无collection的db
			//System.out.println("所有数据库名:"+m.getDatabaseNames());
			
			//获取名为 user 的collection(相当于表),不存在的情况下创建
			coll = db.getCollection("user");
		}else{
			System.out.println("登录失败!");
		}
	}
	
	public static void main(String[] args) {
		MongoMain test = new MongoMain();
		if(coll!=null){
			test.saveData();
			test.searchData();
			test.updateData();
			test.deleteData();
		}
	}

	/**
	 * 保存数据
	 */
	public void saveData(){
		//录入学生1的信息
		BasicDBObject stu1 = new BasicDBObject();
		stu1.put("name", "jack");
		stu1.put("age", "25");
		BasicDBObject sight1 = new BasicDBObject();
		sight1.put("left", 1.5);
		sight1.put("right", 1.2);
		stu1.put("sight", sight1);
		
		//录入学生2的信息
		BasicDBObject stu2 = new BasicDBObject();
		stu2.put("name", "lucy");
		stu2.put("age", "22");
		BasicDBObject sight2 = new BasicDBObject();
		sight2.put("left", 1.0);
		sight2.put("right", 1.3);
		stu2.put("sight", sight2);
		
		//注意:不能直接对sight赋值{left:1.0,right:1.3}
		
		coll.insert(stu1);
		coll.insert(stu2);
	}
	
	/**
	 * 查询数据
	 */
	public void searchData(){
		System.out.println("=======================");
		//show collections
		//获取数据库下所有的collection,不显示无数据的collection
		Set<String> colls = db.getCollectionNames();
		showData(colls);
		
		System.out.println("=======================");
		
		//查询coll中全部记录 
		DBCursor ite = coll.find();  
		showData(ite);
		
		System.out.println("=======================");
		
		//获取第一条记录
		DBObject o = coll.findOne();
		System.out.println(o);
		
		System.out.println("=======================");
		
		//统计colletion的数据条数
		System.out.println(coll.getCount());
		
		System.out.println("=======================");
		
		//查询 name为jack的对象 
		BasicDBObject query = new BasicDBObject();
		query.put("name", "jack");
		DBCursor it = coll.find(query);  
		showData(it);
		
		System.out.println("=======================");
		
		//查询age小于30,age不等于20的对象 
		BasicDBObject query2 = new BasicDBObject();
		query2.put("age", new BasicDBObject("$lt", 30));
		query2.put("age", new BasicDBObject("$ne", 20));
		DBCursor it2 = coll.find(query2);  
		showData(it2);
	}
	
	/**
	 * 修改数据
	 */
	public void updateData(){
		BasicDBObject query = new BasicDBObject();
		query.put("name", "lucy");
		//这里的new_info对象一定要是find出的而不是new的,否则多字段的情况下就会丢失其它字段信息
		DBObject new_info = coll.findOne(query);
		
		//方法一(缺点,必须把2个值都put进去)
		BasicDBObject sight = new BasicDBObject();
		sight.put("left", 1.3);
		sight.put("right", 1.3);
		new_info.put("sight", sight);
		
		//方法二(优点,只需设置要修改的字段的值)
		DBObject obj = (DBObject)new_info.get("sight");
		obj.put("right", 1.5);
		
		coll.update(query, new_info);
	}
	
	/**
	 * 删除数据
	 */
	public void deleteData(){
		BasicDBObject data = new BasicDBObject();
		//删除名称为lucy的记录
		data.put("name", "lucy");
		//传入[空实例]删除所有
		coll.remove(data);
	}
	
	/**
	 * 遍历显示结果
	 * @param result
	 */
	@SuppressWarnings("rawtypes") 
	public void showData(Iterable result){
		Iterator it = result.iterator(); 
		while(it.hasNext())  
		{  
			System.out.println(it.next());  
		}  
    }  
}

 

 Java操作MongoDB,下面是一个完整的例子。本实例需导入mongo-2.5.3.jar

分享到:
评论

相关推荐

    MongoDB java实现增删改查

    在Java开发中,我们可以使用MongoDB的Java驱动程序来实现对MongoDB数据库的增、删、改、查(CRUD)操作。以下是对这些核心功能的详细说明。 1. **增加(Create)** 要在MongoDB中插入数据,我们需要使用`...

    Java操作MongoDB之CRUD(增删改查)

    这篇博文“Java操作MongoDB之CRUD(增删改查)”主要探讨了如何使用Java驱动程序来执行基本的数据库操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 首先,我们来了解MongoDB的Java驱动...

    Maven+SpringBoot+JPA单表增删改查实例

    最后,运行项目,通过发送HTTP请求到对应的API端点,即可实现对单表数据的增删改查操作。例如,发送POST请求到`/users`创建新用户,GET请求到`/users`获取所有用户,PUT请求更新指定ID的用户,DELETE请求删除指定ID...

    NoSql,使用Java进行连接并进行增删改查,MongoDB

    在Java开发中,我们通常使用Java驱动程序来与MongoDB进行交互,实现对数据库的增删改查操作。下面将详细介绍如何使用Java连接MongoDB以及执行基本的数据操作。 首先,要使用Java连接MongoDB,我们需要添加MongoDB的...

    Mongdb 官方驱动 增删改查 Demo MongdbDemo

    在本示例中,"Mongodb 官方驱动 增删改查 Demo MongdbDemo" 涉及到的是使用 MongoDB 的官方驱动进行基本的数据操作,包括增(添加)、删(删除)、改(修改)和查(查询)。以下将详细讲解这些操作以及如何通过...

    Mongodb数据库JAVA操作例子

    本篇将详细介绍如何利用Java实现MongoDB数据库的增、删、改、查(CRUD)操作。 1. **连接MongoDB** 要使用Java连接MongoDB,首先需要引入MongoDB Java驱动程序的依赖。在Maven项目中,可以在pom.xml文件中添加以下...

    MongoDB之Java使用例子

    在这个“MongoDB之Java使用例子”中,我们将深入探讨如何在Java环境中操作MongoDB数据库,包括增、删、改、查(CRUD)操作以及图像数据的存储和检索。 首先,Java与MongoDB的交互主要通过MongoDB的Java驱动程序实现...

    java操作mongodb

    本篇文章将深入探讨如何使用 Java SDK 来与 MongoDB 进行交互,包括基本的增、删、改、查操作。 首先,要进行 Java 和 MongoDB 的交互,你需要下载 MongoDB 的 Java 驱动程序,这可以从 MongoDB 官方网站的下载页面...

    基于java的mongodb实例,代码demo

    在Java开发环境中,我们可以利用Java驱动程序与MongoDB进行交互,实现数据的增删查改操作。下面我们将深入探讨如何在Java中使用MongoDB。 首先,你需要在项目中引入MongoDB的Java驱动程序。通常,我们会使用Maven或...

    mongodb_java_demo

    Java驱动程序(mongodb_java_driver)是MongoDB官方提供的用于Java应用程序与MongoDB交互的库,它允许开发者通过简单的API来执行各种数据库操作,如增、删、改、查。 在"mongodb_java_demo"这个项目中,我们将深入...

    使用Java基于MongoDB和SpringData应用.docx

    完成上述步骤后,你就可以在 Java 应用中通过 Spring Data 访问 MongoDB 数据库,进行数据的增删改查操作了。Spring Data 提供的抽象层使得开发者无需关心底层的数据库操作细节,可以更专注于业务逻辑,提高了开发...

    mongodb-test01.rar

    在这个“mongodb-test01”项目中,你可能会发现更多关于如何使用Java操作MongoDB的例子,包括增删改查、索引创建、事务处理、复制集配置以及性能优化等内容。通过学习这些示例,你可以深入理解Java与MongoDB的整合,...

    mongodb与springboot集成例子

    下面我们将详细讨论如何在 Spring Boot 中集成 MongoDB,并通过使用 `MongoTemplate` 进行数据的增删改查操作。 **1. 添加依赖** 首先,我们需要在项目中添加 MongoDB 和 Spring Data MongoDB 的依赖。如果你使用...

    Java操作mongo

    以上就是Java操作MongoDB的基本知识,包括连接、选择数据库、操作集合、增删改查以及GridFS的大文件处理。这些功能构成了Java开发中与MongoDB交互的核心。在实际项目中,还可以利用各种高级特性,如聚合框架、索引、...

    spring_mongodb.zip

    可以使用`MongoTemplate`进行增删改查操作: ```java @Autowired private MongoTemplate mongoTemplate; // 插入 public void createUser(User user) { mongoTemplate.insert(user); } // 查询 public User ...

    java进阶提高学习教程-15数据库操作.pptx

    数据库的基本操作主要是增删改查操作。事务操作是一个经典的例子,即银行转账。 非关系数据库: 随着大数据的兴起,非关系型数据库为大数据问题的解决,提供了全新的数据库技术支持。通过 Java 语言与 NoSQL 技术的...

    后台springBoot+jdbc例子

    在这个"后台springBoot+jdbc例子"中,我们将探讨SpringBoot如何与Java数据库连接(JDBC)结合使用,实现数据的增删改查操作。 首先,让我们从项目结构开始。在"springBootDemo"这个项目中,我们通常会看到以下主要...

    Spring Boot集成Shiro并利用MongoDB做Session存储的方法详解

    在这个例子中,我们创建了一个名为`ShiroDbRealm`的类,这里假设有一个名为`SystemUserService`的服务来处理用户信息的增删改查。 在`ShiroDbRealm`中,我们需要重写`doGetAuthorizationInfo`方法来执行授权逻辑。...

    自己做的特别简单的网上书城系统

    Java通过JDBC(Java Database Connectivity)API与数据库进行交互,执行SQL语句进行数据的增删改查。如果使用了ORM(Object-Relational Mapping)工具,如Hibernate或MyBatis,可以将数据库操作与Java对象直接映射,...

    基于nodejs的西餐外卖系统和微信小程序源码.zip

    在这个外卖系统中,Node.js可能被用于处理HTTP请求,提供API接口,进行数据的增删改查等操作。 2. **Express框架**: 由于Node.js本身并不包含处理路由和中间件的功能,因此通常会结合Express框架来构建Web应用。...

Global site tag (gtag.js) - Google Analytics