Java操作MongoDB,下面是一个完整的例子。本实例需导入mongo-2.5.3.jar
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());
}
}
}
分享到:
相关推荐
我们将以一个具体的实例——员工表为例,来阐述这一过程。 首先,我们需要理解Spring Boot的核心概念。Spring Boot是Spring框架的一个简化版本,它提供了一种快速开发全新Spring应用的方式。它通过自动配置和起步...
6. **个人信息维护**:这部分可能涉及到对用户基本信息的增删改查操作,需要编写对应的DAO(Data Access Object)层和Service层代码,以处理业务逻辑。 7. **个人密码修改**:为了保障用户安全,密码通常会被加密...
代码不是很完美,基本实现图书管理系统的增删改查等基本功能,目前尚有一处缺陷未解决——在查询后只能在控制台看到结果,没有反馈到界面上,有兴趣的朋友可以加以修改,相信这是一个不错的Java+MongoDb的课程设计...
总结,这个"Web_006.zip"压缩包可能是一个简单的Web应用示例,展示了如何在不依赖特定框架的情况下执行数据库的增删改查操作。深入研究这个文件将提供宝贵的学习机会,尤其是对于那些希望了解Web应用底层工作原理的...
在本系统中,Node.js作为服务器端,负责处理HTTP请求,实现数据的增删改查和业务逻辑。常见的Node.js后端框架如Express或Koa可以被用于构建API接口,实现前后端分离。 3. 数据库选择:MongoDB MongoDB是一款基于...
5. API设计:后端源码会包含处理HTTP请求的路由和控制器,实现增删查改等操作,并返回JSON格式的数据。 6. 报表与分析:这部分源码涉及数据聚合、过滤和可视化,可能用到统计库(如Pandas)和图表库(如D3.js)。 ...
后台部分,开发者通常会结合服务器端语言,如PHP、Python、Node.js或Java,以及数据库技术(MySQL、MongoDB等),构建API接口,处理HTTP请求,与数据库交互,完成数据的增删改查。前后端之间通过JSON格式交换数据,...
4. **后端开发**:后端通常使用Java、Python、Node.js等语言开发,与数据库交互,处理用户请求,如美食数据的增删改查。可能涉及的框架有Spring Boot、Django或Express等。 5. **数据库设计**:数据库是存储美食...
- **非关系型数据库**:了解MongoDB等NoSQL数据库的特点,学会基本的操作(如文档的增删改查)。 3. **Web技术** - **HTTP协议**:理解HTTP协议的工作原理,包括请求/响应消息格式、状态码等。 - **RESTful API...
配置完成后,应用程序就能与MongoDB服务器进行通信,执行增、删、查、改等操作。 接下来,我们转向Spring MVC。Spring MVC是Spring框架的一部分,用于构建Web应用。它采用模型-视图-控制器架构,使得业务逻辑、数据...
SQLExplorer提供了一个GUI,可以查看表格、结构、数据,以及进行数据的增删改查,还能生成SQL脚本。不过,其授权协议和开发语言信息未明确给出。 5. **phpMyAdmin**:这是一个流行的基于Web的MySQL数据库管理工具,...
首先,飞机票管理系统的核心是航班信息的增删改查功能。这一部分主要涉及到数据结构的设计和运用。在数据库中,航班信息通常以表格的形式存储,这需要利用到链表、数组或哈希表等数据结构。链表允许快速插入和删除,...
通过分析源码,我们可以学习到如何使用SpringBoot构建RESTful API,以及如何与数据库进行高效交互,实现数据的增删改查操作。 提到数据库,这里可能使用了关系型数据库如MySQL或非关系型数据库如MongoDB,用于存储...
3. 数据访问层:Servlet通过这一层与数据库进行交互,完成数据的增删改查操作。可能使用JDBC(Java Database Connectivity)或者ORM(Object-Relational Mapping)框架如Hibernate或MyBatis来简化数据库操作。 4. ...
2. 后端接口:处理前端请求,与数据库交互,实现数据的增删改查。 3. 数据库连接池:提高数据库连接的复用率,减少资源消耗。 五、系统功能分析 1. 商品管理:添加、修改、删除电脑型号信息,包括品牌、配置、价格...
数据库的设计应该包括学生信息表、课程信息表、考勤记录表等,通过SQL查询语句进行数据的增删改查,确保数据的安全性和一致性。 此外,系统的亮点之一是小程序前端的GPS签到功能。利用微信小程序的开放接口,开发者...
2. 开发后端API:编写处理请求的控制器,实现数据增删改查等功能。 3. 创建前端页面:设计小程序页面结构,编写WXML和WXSS,实现页面跳转和数据渲染。 4. 接口联调:前端调用后端API,确保数据传输正确无误。 5. ...
例如,药品入库和出库需要记录详细的交易信息,库存管理则需实时更新库存状态,有效期跟踪提醒过期药品,供应商管理则涉及供应商信息的增删改查,用户权限控制则保证不同角色的用户访问权限差异。 此外,系统的安全...
2. API设计:后端提供与前端通信的RESTful API,处理数据增删改查、验证授权等功能。例如,`/push`接口用于发送推送消息,`/user`接口处理用户注册登录等操作。 3. 数据库交互:后端代码通常会涉及数据库操作,如...
2. 数据管理:对各类业务数据进行增删改查操作,支持数据导入导出、备份恢复等。 3. 权限控制:根据角色和用户分配不同的操作权限,实现细粒度的权限管理。 4. 流程审批:实现工作流的自动化处理,如请假申请、报销...