`

学习MongoDB(二)——用Java对数据库进行增删改查

阅读更多

MongoDB已经支持很多种语言的数据访问,官方提供的API参考 http://www.mongodb.org/display/DOCS/Drivers

值得一提的是还有JavaScript的访问API,当然是在服务器端用JavaScript来访问MongoDB数据库,必然就得利用Node.js了。

下载Java的驱动Jar包:https://github.com/mongodb/mongo-java-driver/downloads

Java的API在线文档地址:http://api.mongodb.org/java/2.9.1/

官网给出的Java的操作指导:http://www.mongodb.org/display/DOCS/Java+Tutorial

这里列出基本的CRUD的示例代码:

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

public class RemoteMongoTest {

	private static Mongo m; 
	private static void CreateMethod(){
		 DB db = m.getDB("newtest");//不存在会自动创建  
		 
         DBCollection col = db.getCollection("col");//不存在会自动创建  
         System.out.println("当前数据库下的集合列表:"+db.getCollectionNames()); //所有有数据的集合名称
        
         //向集合中插入数据,不用考虑数据重复,因为mongodb会为每个数据对象指定一个不同的ObjectId
         BasicDBObject val = new BasicDBObject(); 
         val.put("name", "Kaka2"); 
         //col.insert(val); 
         col.save(val); 
         
         //不同数据对象的字段也不必一样
         val = new BasicDBObject();  
         val.put("name2", "C.R");
         val.put("nickname", "C.R");
         col.insert(val); 
         //col.save(val); 
	}
	private static void ReadMethod(){
		DB db = m.getDB("newtest");      
        DBCollection col = db.getCollection("col");
		
		//取得所有数据并打印出来 
        DBCursor ite = col.find(); //这儿也能像下面findone函数一样加限定条件
        while(ite.hasNext()) 
        { 
            System.out.println(ite.next()); 
        }   
        
        System.out.println("///////////////////////////////////////");
        
        //类似sql语句:select top 1 * from col where name='Kaka';
        DBObject oners = col.findOne(new BasicDBObject("name","Kaka"));
        System.out.println(oners);
        
        //类似sql语句:select top 1 name2,nickname from col where name2='C.R';
        oners = col.findOne(new BasicDBObject("name2","C.R"),
        				   (BasicDBObject)(new BasicDBObject("nickname","").put("name2", ""))
        					);
        System.out.println(oners);
	}
	private static void UpdateMethod(){
		DB db = m.getDB("newtest");      
        DBCollection col = db.getCollection("col");
        
        DBObject temp = col.findAndModify(new BasicDBObject("name","Kaka"), 
        				 (BasicDBObject)(new BasicDBObject("name","CZ"))
        				 );
        System.out.println(temp);//返回更改之前的数据对象
        
        //类似sql语句:update col set name='dl' where name='kaka2'
        col.update(new BasicDBObject("name","kaka2"), new BasicDBObject("name","dl"));
        //一次更新多条数据不管用
        //col.update(new BasicDBObject("name2","C.R"), new BasicDBObject("nickname","soso"),false,true);
        //col.updateMulti(new BasicDBObject("name2","C.R"), new BasicDBObject("nickname","soso"));
        
        DBCursor ite = col.find(); 
        while(ite.hasNext()) 
        { 
            System.out.println(ite.next()); 
        }   
	}
	private static void DeleteMethod(){
		DB db = m.getDB("newtest");      
        DBCollection col = db.getCollection("col");
        
        //类似sql语句:delete from col where name2='C.R';
        col.remove(new BasicDBObject("name2","C.R"));
        col.findAndRemove(new BasicDBObject("name","Kaka"));//返回删除之前的数据对象
        
        DBCursor ite = col.find(); 
        while(ite.hasNext()) 
        { 
            System.out.println(ite.next()); 
        }  
        
        //col.drop();//删除数据集合
        //db.dropDatabase();//删除数据库
	}
	
	
	public static void main(String[] args) {
		try{ 
			m = new Mongo("192.168.1.193");//默认的port就是27017 这里是连接另外一台Mac笔记本上的mongo数据库
			System.out.println("数据库列表:"+m.getDatabaseNames());  //所有有数据的数据库名称
			CreateMethod();
			//ReadMethod();
			//UpdateMethod();
			//DeleteMethod();
        }catch(Exception error) 
        { 
            error.printStackTrace(); 
        } 
	}

}

 

分享到:
评论

相关推荐

    springboot集成mongodb增删改查功能源码

    在关系型数据库中,我们使用表格和行/列,而在MongoDB中,我们使用集合和文档,这些文档可以是JSON或BSON格式。 集成Spring Boot和MongoDB的第一步是添加相关的依赖。在`pom.xml`文件中,我们需要引入Spring Data ...

    基于MongoDb的图书管理系统.rar

    代码不是很完美,基本实现图书管理系统的增删改查等基本功能,目前尚有一处缺陷未解决——在查询后只能在控制台看到结果,没有反馈到界面上,有兴趣的朋友可以加以修改,相信这是一个不错的Java+MongoDb的课程设计...

    数据库应用程序开发详解:MongoDB与传统数据库对比及其Web应用开发流程

    其次,探讨了基于Java和SQL Server的商品销售管理系统的数据库设计和增删改查操作。最后,介绍了使用GTK+和MySQL进行数据库操作的方法,以及使用Delphi开发网络数据库应用的具体步骤。 适合人群:具备一定编程基础的...

    个人生活助手——java

    6. **个人信息维护**:这部分可能涉及到对用户基本信息的增删改查操作,需要编写对应的DAO(Data Access Object)层和Service层代码,以处理业务逻辑。 7. **个人密码修改**:为了保障用户安全,密码通常会被加密...

    毕业设计 学生宿舍管理系统 技术找 前端Vue 后端 Node 数据库MongoDB.zip

    在本系统中,Node.js作为服务器端,负责处理HTTP请求,实现数据的增删改查和业务逻辑。常见的Node.js后端框架如Express或Koa可以被用于构建API接口,实现前后端分离。 3. 数据库选择:MongoDB MongoDB是一款基于...

    数据库工具大全.pdf

    SQLExplorer提供了一个GUI,可以查看表格、结构、数据,以及进行数据的增删改查,还能生成SQL脚本。不过,其授权协议和开发语言信息未明确给出。 5. **phpMyAdmin**:这是一个流行的基于Web的MySQL数据库管理工具,...

    Web_006.zip

    在“web的不带框架增删改查”这个标签中,暗示了开发者可能使用了原生的编程语言功能来实现数据库操作,而不是依赖像Spring Boot、Django或Laravel这样的Web框架。这样做的好处是代码更简洁、可控性更强,但缺点是...

    自动健康填报————源码

    【自动健康填报——源码详解】 自动健康填报系统是一种用于收集和管理个人健康状况信息的数字化工具,尤其在疫情防控期间,这种系统可以帮助学校、企事业单位等机构快速收集和跟踪人员的健康状态,以便及时采取相应...

    《数据库课程设计》_大作业_电脑销售信息管理系统_作品二.rar

    2. 后端接口:处理前端请求,与数据库交互,实现数据的增删改查。 3. 数据库连接池:提高数据库连接的复用率,减少资源消耗。 五、系统功能分析 1. 商品管理:添加、修改、删除电脑型号信息,包括品牌、配置、价格...

    基于Android的智能停车诱导系统源码数据库.zip

    通过分析源码,我们可以学习到如何使用SpringBoot构建RESTful API,以及如何与数据库进行高效交互,实现数据的增删改查操作。 提到数据库,这里可能使用了关系型数据库如MySQL或非关系型数据库如MongoDB,用于存储...

    【Java后端开发】教程及案例.docx

    - **非关系型数据库**:了解MongoDB等NoSQL数据库的特点,学会基本的操作(如文档的增删改查)。 3. **Web技术** - **HTTP协议**:理解HTTP协议的工作原理,包括请求/响应消息格式、状态码等。 - **RESTful API...

    html前后台——模板

    后台部分,开发者通常会结合服务器端语言,如PHP、Python、Node.js或Java,以及数据库技术(MySQL、MongoDB等),构建API接口,处理HTTP请求,与数据库交互,完成数据的增删改查。前后端之间通过JSON格式交换数据,...

    webgis项目——美食

    4. **后端开发**:后端通常使用Java、Python、Node.js等语言开发,与数据库交互,处理用户请求,如美食数据的增删改查。可能涉及的框架有Spring Boot、Django或Express等。 5. **数据库设计**:数据库是存储美食...

    springMvcPlusMongo-master.zip

    配置完成后,应用程序就能与MongoDB服务器进行通信,执行增、删、查、改等操作。 接下来,我们转向Spring MVC。Spring MVC是Spring框架的一部分,用于构建Web应用。它采用模型-视图-控制器架构,使得业务逻辑、数据...

    基于spring boot 开发,上课考勤系统毕业设计,该系统设计获得优秀毕业设计

    数据库的设计应该包括学生信息表、课程信息表、考勤记录表等,通过SQL查询语句进行数据的增删改查,确保数据的安全性和一致性。 此外,系统的亮点之一是小程序前端的GPS签到功能。利用微信小程序的开放接口,开发者...

    水果管理系统webFruitSys.zip

    3. 数据访问层:Servlet通过这一层与数据库进行交互,完成数据的增删改查操作。可能使用JDBC(Java Database Connectivity)或者ORM(Object-Relational Mapping)框架如Hibernate或MyBatis来简化数据库操作。 4. ...

    mysql postgresql Greenplum 实时同步

    - **Debezium**:这是一个变化数据捕获(CDC)工具,可以将数据库的增删改查操作转换成事件流,并通过Kafka发布这些事件。 - **架构**:Debezium监听数据库的更改,并将这些更改发送到Kafka,从而支持实时的数据同步...

    通用后台管理

    2. 数据管理:对各类业务数据进行增删改查操作,支持数据导入导出、备份恢复等。 3. 权限控制:根据角色和用户分配不同的操作权限,实现细粒度的权限管理。 4. 流程审批:实现工作流的自动化处理,如请假申请、报销...

    茶叶商城.zip

    例如,商品信息的增删改查,订单状态的实时更新,以及与微信支付等第三方支付平台的对接。这些功能的实现,需要良好的架构设计和性能优化。 4. 数据库设计: 在茶叶商城系统中,数据库是存储商品信息、订单详情、...

    网站建设教程课件(很不错)

    学习者需要理解如何编写API接口,处理数据的增删改查,以及实现用户认证和授权等功能。 此外,网站的安全性也是不可忽视的部分。教程中会涵盖防止SQL注入、XSS攻击、CSRF攻击等常见的安全措施,以及HTTPS的配置和...

Global site tag (gtag.js) - Google Analytics