您的位置:首页 > 数据库 > Mongodb

java操作mongodb数据库

2016-03-07 20:46 435 查看
java操作mongodb数据库

mongoDB的java驱动

1、DBObject对象

如:{name:"suns",pwd:"123"}---------->Map.put("name","suns")----->DBObject是Map的子接口

-------------->BasicDBObject.put("name","suns");

2、BasicDBList对象(数组的形式)

["suns","jiangxs","huxz"]------>ArrayList---------->BasicDBList.add("suns")子类

3、java编程步骤

a、导入MongDB提供的java驱动jar包

b、创建链接对象----------》负责与数据库的链接

Mongo mongo=new Mongo(ip,port);

c、获得数据库对象

DB db=mongo.getDB("dbname");

d、获得Collection对象

DBCollection dbCollection=db.getCollection("collectionName");

e、调用DBCollection对象的相关方法完成MongoDb的CRUD操作

(1)dbCollection.insert()------------->db.insert();

(2)dbCollection.find() ------------->db.users.find();

(3)dbCollection.findOne()----------->db.users.findOne();

(4)dbCollection.update()------------>db.users.update();

(5)dbCollection.remove()------------>db.users.remove();

4、启动Eclipse演示代码

public class TestMongoAPI{

private Mongo mongo;

private DB db;

private DBCollection dbCollection;

@Before//初始化方法

public void init()throws Exception{

mongo=new Mongo("127.0.0.1","27017");

db=mongo.getDB("baichi");

dbCollection=db.getCollection("users");

}

/**1、测试插入对象

*db.users.insert(name:"suns",password:"123456");

*db.Collection.insert()

*/

@Test

public void testInsert(){

//新建DB对象

DBObject dbObject=new BasicDBObject();

dbObject.put("name","suns");

dbObject.put("password","123456");

//将值插入数据库中

dbCollection.insert(dbObject);

}

/**

*执行插入java代码后,检查是否插入MongoDB数据库

*>db----->>use baichi----->db.users.find()

*/

/**

*2、测试插入集合

*db.users.insert({post,[1,2,3]})

* dbCollection.insert()

*/

@Test

public void testListInsert(){

BasicDBList dbList=new BasicDBList();

dbList.add(1);

dbList.add(2);

dbList.add(3);

//创建对象准备放入集合

DBObject dbObject=new BasicDBObject();

dbObject.put("post",dbList);

dbCollection.insert(dbObject);

}

/**

*3、测试批量数据的插入

*{name:"suns1",password:"123456"}

*{name:"suns2",password:"123456"}

*{name:"suns3",password:"123456"}

*/

@Test

public void testBatchIbsert(){

//创建3个对象,准备存储数据

DBObject dbObject1=new BasicDBObject();

DBObject dbObject2=new BasicDBObject();

DBObject dbObject3=new BasicDBObject();

//放入数据到map集合中

dbObject1.put("name","suns1");

dbObject1.put("password","123456");

dbObject1.put("name","suns2");

dbObject1.put("password","123456");

dbObject1.put("name","suns3");

dbObject1.put("password","123456");

List<DBObject> dbObjects=new ArrayList<DBObject>();

dbObjects.add(dbObject1);

dbObjects.add(dbObject2);

dbObjects.add(dbObject3);

//重载的方法

dbCollection.insert(dbObjects);

}

/**

*4、测试数据的查询(一)

* db.users.find({name:"suns"});

* dbCollection.find()

*/

@Test

public void testQuery(){

DBObject dbObject=new BasicDBObject();

dbObject.put("name","suns");

DBCursor dbCursor=dbCollection.find(dbObject);//添加查询条件dbObject

//遍历查询结果

while(dbCursor.hasNext()){

System.out.println(dbCursor.next());

}

}

/**

*5、测试数据的查询(二)

*db.users.find({name:{$ne:"suns"}});

* dbCollection.find();

*/

@Test

public void testQuery2(){

//新建需要封装的对象

DBObject neObject=new BasicDBObject();

neObject.put("$ne","suns");

DBObject nameObject=new BasicDBObject();

nameObject.put("name",neObject);

//调用对象的方法,执行语句

DBCursor dbcursor=dbCollection.find(nameObject);

while(dbcursor.hashNext()){

System.out.println("结果:"+dbcursor.next());

}

}

/**

*6、测试修改数据

*db.users.update({name:"suns"},{$set:{password:"23564"}},0,1);

*0位置代表如果不存在,是否插入(0否,1是);1位置代表是否影响多行(0否,1是)

* dbCollection.update()

*/

@Test

public void testUpdate(){

DBObject queryObject=new BasicDBObject();

queryObject.put("name","suns");

DBObject setCondition=new BasicDBObject();

setCondition.put("password","23564");

DBObject setObject=new BasicDBObject();

setObject.put("$set",setCondition);

//调用对象的方法,执行修改

dbCollection.update(queryObject,setObject,false,true);

}

/**

*7、测试删除数据

*db.users.remove({name:"suns"});

* dbCollection.remove();

*/

@Test

public void testDelete(){

//准备封装参数

DBObject removeCondition=new BasicDBObject();

removeCondition.put("name","suns");

//调用对象方法,删除数据

dbCollection.remove(removeCondition);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: