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
分享到:
相关推荐
在Java开发中,我们可以使用MongoDB的Java驱动程序来实现对MongoDB数据库的增、删、改、查(CRUD)操作。以下是对这些核心功能的详细说明。 1. **增加(Create)** 要在MongoDB中插入数据,我们需要使用`...
这篇博文“Java操作MongoDB之CRUD(增删改查)”主要探讨了如何使用Java驱动程序来执行基本的数据库操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 首先,我们来了解MongoDB的Java驱动...
最后,运行项目,通过发送HTTP请求到对应的API端点,即可实现对单表数据的增删改查操作。例如,发送POST请求到`/users`创建新用户,GET请求到`/users`获取所有用户,PUT请求更新指定ID的用户,DELETE请求删除指定ID...
在Java开发中,我们通常使用Java驱动程序来与MongoDB进行交互,实现对数据库的增删改查操作。下面将详细介绍如何使用Java连接MongoDB以及执行基本的数据操作。 首先,要使用Java连接MongoDB,我们需要添加MongoDB的...
在本示例中,"Mongodb 官方驱动 增删改查 Demo MongdbDemo" 涉及到的是使用 MongoDB 的官方驱动进行基本的数据操作,包括增(添加)、删(删除)、改(修改)和查(查询)。以下将详细讲解这些操作以及如何通过...
本篇将详细介绍如何利用Java实现MongoDB数据库的增、删、改、查(CRUD)操作。 1. **连接MongoDB** 要使用Java连接MongoDB,首先需要引入MongoDB Java驱动程序的依赖。在Maven项目中,可以在pom.xml文件中添加以下...
在这个“MongoDB之Java使用例子”中,我们将深入探讨如何在Java环境中操作MongoDB数据库,包括增、删、改、查(CRUD)操作以及图像数据的存储和检索。 首先,Java与MongoDB的交互主要通过MongoDB的Java驱动程序实现...
本篇文章将深入探讨如何使用 Java SDK 来与 MongoDB 进行交互,包括基本的增、删、改、查操作。 首先,要进行 Java 和 MongoDB 的交互,你需要下载 MongoDB 的 Java 驱动程序,这可以从 MongoDB 官方网站的下载页面...
在Java开发环境中,我们可以利用Java驱动程序与MongoDB进行交互,实现数据的增删查改操作。下面我们将深入探讨如何在Java中使用MongoDB。 首先,你需要在项目中引入MongoDB的Java驱动程序。通常,我们会使用Maven或...
Java驱动程序(mongodb_java_driver)是MongoDB官方提供的用于Java应用程序与MongoDB交互的库,它允许开发者通过简单的API来执行各种数据库操作,如增、删、改、查。 在"mongodb_java_demo"这个项目中,我们将深入...
完成上述步骤后,你就可以在 Java 应用中通过 Spring Data 访问 MongoDB 数据库,进行数据的增删改查操作了。Spring Data 提供的抽象层使得开发者无需关心底层的数据库操作细节,可以更专注于业务逻辑,提高了开发...
在这个“mongodb-test01”项目中,你可能会发现更多关于如何使用Java操作MongoDB的例子,包括增删改查、索引创建、事务处理、复制集配置以及性能优化等内容。通过学习这些示例,你可以深入理解Java与MongoDB的整合,...
下面我们将详细讨论如何在 Spring Boot 中集成 MongoDB,并通过使用 `MongoTemplate` 进行数据的增删改查操作。 **1. 添加依赖** 首先,我们需要在项目中添加 MongoDB 和 Spring Data MongoDB 的依赖。如果你使用...
以上就是Java操作MongoDB的基本知识,包括连接、选择数据库、操作集合、增删改查以及GridFS的大文件处理。这些功能构成了Java开发中与MongoDB交互的核心。在实际项目中,还可以利用各种高级特性,如聚合框架、索引、...
可以使用`MongoTemplate`进行增删改查操作: ```java @Autowired private MongoTemplate mongoTemplate; // 插入 public void createUser(User user) { mongoTemplate.insert(user); } // 查询 public User ...
数据库的基本操作主要是增删改查操作。事务操作是一个经典的例子,即银行转账。 非关系数据库: 随着大数据的兴起,非关系型数据库为大数据问题的解决,提供了全新的数据库技术支持。通过 Java 语言与 NoSQL 技术的...
在这个"后台springBoot+jdbc例子"中,我们将探讨SpringBoot如何与Java数据库连接(JDBC)结合使用,实现数据的增删改查操作。 首先,让我们从项目结构开始。在"springBootDemo"这个项目中,我们通常会看到以下主要...
在这个例子中,我们创建了一个名为`ShiroDbRealm`的类,这里假设有一个名为`SystemUserService`的服务来处理用户信息的增删改查。 在`ShiroDbRealm`中,我们需要重写`doGetAuthorizationInfo`方法来执行授权逻辑。...
Java通过JDBC(Java Database Connectivity)API与数据库进行交互,执行SQL语句进行数据的增删改查。如果使用了ORM(Object-Relational Mapping)工具,如Hibernate或MyBatis,可以将数据库操作与Java对象直接映射,...
在这个外卖系统中,Node.js可能被用于处理HTTP请求,提供API接口,进行数据的增删改查等操作。 2. **Express框架**: 由于Node.js本身并不包含处理路由和中间件的功能,因此通常会结合Express框架来构建Web应用。...