java操作mongodb实现CURD功能实例
先下载相应的驱动:官网上下载:
本文使用mongo-2.10.1.jar版本:
下面有详细代码的,每个方法可以单独执行。其中为了方便运行,每个方法中都重新链接数据库,而没有再提出来,因为在此的目的是为了认识mongodb而已。
package com.mongo.dao;
import com.mongodb.basicdbobject;
import com.mongodb.db;
import com.mongodb.dbcollection;
import com.mongodb.dbcursor;
import com.mongodb.mongo;
/**
* 对基本实体的存储测试
* @author lhy
*
*/
public class entitytest {
public static void main(string[] args) throws exception{
delete();
}
/**
* 保存实体对象
* @throws exception
*/
public static void saveentity() throws exception{
//第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库
//默认构造方法,默认是连接本机,端口号,默认是27017
//相当于mongo mongo =new mongo("localhost",27017)
mongo mongo =new mongo();
//第二:连接具体的数据库
//其中参数是具体数据库的名称,若服务器中不存在,会自动创建
db db=mongo.getdb("mymongo");
//第三:操作具体的表
//在mongodb中没有表的概念,而是指集合
//其中参数是数据库中表,若不存在,会自动创建
dbcollection collection=db.getcollection("user");
//添加操作
//在mongodb中没有行的概念,而是指文档
basicdbobject document=new basicdbobject();
document.put("id", 1);
document.put("name", "小明");
// //然后保存到集合中
// // collection.insert(document);
//当然我也可以保存这样的json串
/* {
"id":1,
"name","小明",
"address":
{
"city":"beijing",
"code":"065000"
}
}*/
//实现上述json串思路如下:
//第一种:类似xml时,不断添加
basicdbobject addressdocument=new basicdbobject();
addressdocument.put("city", "beijing");
addressdocument.put("code", "065000");
document.put("address", addressdocument);
//然后保存数据库中
collection.insert(document);
//第二种:直接把json存到数据库中
/* string jsontest="{'id':1,'name':'小明',"+
"'address':{'city':'beijing','code':'065000'}"+
"}";
dbobject dbobjct=(dbobject)json.parse(jsontest);
collection.insert(dbobjct);*/
}
/**
* 遍历所有的
* @throws exception
*/
public static void selectall() throws exception{
//第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库
//默认构造方法,默认是连接本机,端口号,默认是27017
//相当于mongo mongo =new mongo("localhost",27017)
mongo mongo =new mongo();
//第二:连接具体的数据库
//其中参数是具体数据库的名称,若服务器中不存在,会自动创建
db db=mongo.getdb("mymongo");
//第三:操作具体的表
//在mongodb中没有表的概念,而是指集合
//其中参数是数据库中表,若不存在,会自动创建
dbcollection collection=db.getcollection("user");
//查询操作
//查询所有
//其中类似access数据库中游标概念
dbcursor cursor=collection.find();
system.out.println("mongodb中的user表结果如下:");
while(cursor.hasnext()){
system.out.println(cursor.next());
}
}
/**
* 根据条件查询
* @throws exception
*/
public static void selectpart() throws exception{
//第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库
//默认构造方法,默认是连接本机,端口号,默认是27017
//相当于mongo mongo =new mongo("localhost",27017)
mongo mongo =new mongo();
//第二:连接具体的数据库
//其中参数是具体数据库的名称,若服务器中不存在,会自动创建
db db=mongo.getdb("mymongo");
//第三:操作具体的表
//在mongodb中没有表的概念,而是指集合
//其中参数是数据库中表,若不存在,会自动创建
dbcollection collection=db.getcollection("user");
//可以直接put
basicdbobject queryobject=new basicdbobject();
queryobject.put("id", 1);
dbcursor querycursor=collection.find(queryobject);
system.out.println("条件查询如下:");
while(querycursor.hasnext()){
system.out.println(querycursor.next());
}
}
/**
* 更新操作
* 更新一条记录
* @throws exception
*/
public static void update()throws exception{
//第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库
//默认构造方法,默认是连接本机,端口号,默认是27017
//相当于mongo mongo =new mongo("localhost",27017)
mongo mongo =new mongo();
//第二:连接具体的数据库
//其中参数是具体数据库的名称,若服务器中不存在,会自动创建
db db=mongo.getdb("mymongo");
//第三:操作具体的表
//在mongodb中没有表的概念,而是指集合
//其中参数是数据库中表,若不存在,会自动创建
dbcollection collection=db.getcollection("user");
//更新后的对象
// 第一种更新方式
basicdbobject newbasicdbobject =new basicdbobject();
newbasicdbobject.put("id", 2);
newbasicdbobject.put("name", "小红");
collection.update(new basicdbobject().append("id", 1),newbasicdbobject);
// 第二种更新方式
// 更新某一个字段
// basicdbobject newbasicdbobject =new basicdbobject().append("$set",new basicdbobject().append("name", "小红") );
// collection.update(new basicdbobject().append("id", 1).append("name", "小明"),newbasicdbobject);
dbcursor querycursor1=collection.find();
system.out.println("更新后结果如下:");
while(querycursor1.hasnext()){
system.out.println(querycursor1.next());
}
}
/**
* 删除文档,其中包括删除全部或删除部分
* @throws exception
*/
public static void delete() throws exception{
//第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库
//默认构造方法,默认是连接本机,端口号,默认是27017
//相当于mongo mongo =new mongo("localhost",27017)
mongo mongo =new mongo();
//第二:连接具体的数据库
//其中参数是具体数据库的名称,若服务器中不存在,会自动创建
db db=mongo.getdb("mymongo");
//第三:操作具体的表
//在mongodb中没有表的概念,而是指集合
//其中参数是数据库中表,若不存在,会自动创建
dbcollection collection=db.getcollection("user");
basicdbobject queryobject1=new basicdbobject();
queryobject1.put("id", 2);
queryobject1.put("name","小红");
//删除某一条记录
collection.remove(queryobject1);
//删除全部
//collection.drop();
dbcursor cursor1=collection.find();
system.out.println("删除后的结果如下:");
while(cursor1.hasnext()){
system.out.println(cursor1.next());
}
}
}
上一篇: UML常用关系解析