java操作mongodb实现CURD功能实例
先下载相应的驱动:官网上下载:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/
本文使用mongo-2.10.1.jar版本:
下面有详细代码的,每个方法可以单独执行。其中为了方便运行,每个方法中都重新链接数据库,而没有再提出来,因为在此的目的是为了认识mongodb而已。
packagecom.mongo.dao;
importcom.mongodb.BasicDBObject;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.DBCursor;
importcom.mongodb.Mongo;
/**
*对基本实体的存储测试
*@authorlhy
*
*/
publicclassEntityTest{
publicstaticvoidmain(String[]args)throwsException{
delete();
}
/**
*保存实体对象
*@throwsException
*/
publicstaticvoidsaveEntity()throwsException{
//第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库
//默认构造方法,默认是连接本机,端口号,默认是27017
//相当于Mongomongo=newMongo("localhost",27017)
Mongomongo=newMongo();
//第二:连接具体的数据库
//其中参数是具体数据库的名称,若服务器中不存在,会自动创建
DBdb=mongo.getDB("myMongo");
//第三:操作具体的表
//在mongodb中没有表的概念,而是指集合
//其中参数是数据库中表,若不存在,会自动创建
DBCollectioncollection=db.getCollection("user");
//添加操作
//在mongodb中没有行的概念,而是指文档
BasicDBObjectdocument=newBasicDBObject();
document.put("id",1);
document.put("name","小明");
// //然后保存到集合中
// // collection.insert(document);
//当然我也可以保存这样的json串
/* {
"id":1,
"name","小明",
"address":
{
"city":"beijing",
"code":"065000"
}
}*/
//实现上述json串思路如下:
//第一种:类似xml时,不断添加
BasicDBObjectaddressDocument=newBasicDBObject();
addressDocument.put("city","beijing");
addressDocument.put("code","065000");
document.put("address",addressDocument);
//然后保存数据库中
collection.insert(document);
//第二种:直接把json存到数据库中
/* StringjsonTest="{"id":1,"name":"小明","+
""address":{"city":"beijing","code":"065000"}"+
"}";
DBObjectdbobjct=(DBObject)JSON.parse(jsonTest);
collection.insert(dbobjct);*/
}
/**
*遍历所有的
*@throwsException
*/
publicstaticvoidselectAll()throwsException{
//第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库
//默认构造方法,默认是连接本机,端口号,默认是27017
//相当于Mongomongo=newMongo("localhost",27017)
Mongomongo=newMongo();
//第二:连接具体的数据库
//其中参数是具体数据库的名称,若服务器中不存在,会自动创建
DBdb=mongo.getDB("myMongo");
//第三:操作具体的表
//在mongodb中没有表的概念,而是指集合
//其中参数是数据库中表,若不存在,会自动创建
DBCollectioncollection=db.getCollection("user");
//查询操作
//查询所有
//其中类似access数据库中游标概念
DBCursorcursor=collection.find();
System.out.println("mongodb中的user表结果如下:");
while(cursor.hasNext()){
System.out.println(cursor.next());
}
}
/**
*根据条件查询
*@throwsException
*/
publicstaticvoidselectPart()throwsException{
//第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库
//默认构造方法,默认是连接本机,端口号,默认是27017
//相当于Mongomongo=newMongo("localhost",27017)
Mongomongo=newMongo();
//第二:连接具体的数据库
//其中参数是具体数据库的名称,若服务器中不存在,会自动创建
DBdb=mongo.getDB("myMongo");
//第三:操作具体的表
//在mongodb中没有表的概念,而是指集合
//其中参数是数据库中表,若不存在,会自动创建
DBCollectioncollection=db.getCollection("user");
//可以直接put
BasicDBObjectqueryObject=newBasicDBObject();
queryObject.put("id",1);
DBCursorquerycursor=collection.find(queryObject);
System.out.println("条件查询如下:");
while(querycursor.hasNext()){
System.out.println(querycursor.next());
}
}
/**
*更新操作
*更新一条记录
*@throwsException
*/
publicstaticvoidupdate()throwsException{
//第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库
//默认构造方法,默认是连接本机,端口号,默认是27017
//相当于Mongomongo=newMongo("localhost",27017)
Mongomongo=newMongo();
//第二:连接具体的数据库
//其中参数是具体数据库的名称,若服务器中不存在,会自动创建
DBdb=mongo.getDB("myMongo");
//第三:操作具体的表
//在mongodb中没有表的概念,而是指集合
//其中参数是数据库中表,若不存在,会自动创建
DBCollectioncollection=db.getCollection("user");
//更新后的对象
// 第一种更新方式
BasicDBObjectnewBasicDBObject=newBasicDBObject();
newBasicDBObject.put("id",2);
newBasicDBObject.put("name","小红");
collection.update(newBasicDBObject().append("id",1),newBasicDBObject);
// 第二种更新方式
// 更新某一个字段
// BasicDBObjectnewBasicDBObject=newBasicDBObject().append("$set",newBasicDBObject().append("name","小红"));
// collection.update(newBasicDBObject().append("id",1).append("name","小明"),newBasicDBObject);
DBCursorquerycursor1=collection.find();
System.out.println("更新后结果如下:");
while(querycursor1.hasNext()){
System.out.println(querycursor1.next());
}
}
/**
*删除文档,其中包括删除全部或删除部分
*@throwsException
*/
publicstaticvoiddelete()throwsException{
//第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库
//默认构造方法,默认是连接本机,端口号,默认是27017
//相当于Mongomongo=newMongo("localhost",27017)
Mongomongo=newMongo();
//第二:连接具体的数据库
//其中参数是具体数据库的名称,若服务器中不存在,会自动创建
DBdb=mongo.getDB("myMongo");
//第三:操作具体的表
//在mongodb中没有表的概念,而是指集合
//其中参数是数据库中表,若不存在,会自动创建
DBCollectioncollection=db.getCollection("user");
BasicDBObjectqueryObject1=newBasicDBObject();
queryObject1.put("id",2);
queryObject1.put("name","小红");
//删除某一条记录
collection.remove(queryObject1);
//删除全部
//collection.drop();
DBCursorcursor1=collection.find();
System.out.println("删除后的结果如下:");
while(cursor1.hasNext()){
System.out.println(cursor1.next());
}
}
}
相关文章
- java导出pdf模板_java模板导出PDF[通俗易懂]
- java 实现 按位异或_Java 按位异或的性质及其妙用
- java webservice 实例_Java WebService 简单实例(附实例代码)
- Java中char,short,int,long占几个字节和多少位[通俗易懂]
- java定时器实例_Java定时器小实例
- 【Java】jar启动的java程序报错FileNotFoundException
- MongoDB系列教程(六):java操作mongodb实例
- java.lang.Exception: libsvm classes not in CLASSPATH!问题解决方法详解大数据
- MongoDB安装以及java开发入门详解大数据
- Mongodb多实例管理:最佳实践(mongodb多个实例)
- MongoDB之聚合精髓探析(mongodb的聚合查询)
- MongoDB快速导入指南:利用唯一特性学习导入命令(mongodb导入命令)
- java 获取两个日期间相差的天数详解编程语言
- Mongodb单机环境的搭建与配置(mongodb单机配置)
- MongoDB:规定出新的约束规则(mongodb约束)
- 优化MongoDB日志优化:提升系统性能(mongodb日志)
- MongoDB的开机自动启动配置(mongodb开机启动)
- Mongodb在百度网盘的应用(mongodb百度网盘)
- 拥抱MongoDB,重视中文网(mongodb中文网)
- MongoDB命令指南:详解及实例展示(mongodb 命令详解)
- MongoDB默认端口号:27017(mongodb的默认端口)
- Java程序调用Linux系统命令实现更多功能(java调用linux命令)