今天我来说一下使用Java程序去实现MongoDB数据库的增删改查功能。
首先需要导入连接数据库的jar包,需要的话这是链接:http://pan.baidu.com/s/1eSDytAM,把jar包放到lib目录下,然后在buildpath一下即可。
(1)实现数据插入,这是实现数据插入的代码:
public void add() throws Exception{
//建立连接
Mongo mongo = new Mongo("localhost",27017);
//获取指定的数据库
DB db = mongo.getDB("test");
//获取指定的集合
DBCollection dbCollection = db.getCollection("person");
BasicDBObject dbObject = new BasicDBObject();//DBObject代表的是一个对象
dbObject.put("name", "wujinfan");
dbObject.put("desc", "好人一个");
dbCollection.insert(dbObject);
mongo.close();
}
我来讲解一下,第一行代码是创建Mongo对象并且连接主机和匹配端口号,其次是找到指定的数据库以及找到指定的集合,因为MongoDB数据库是以键值对的形式存储数据的。所以创建
BasicDBObject对象,然后把数据放到集合里面,最后在关闭mongo对象。最后我们来查看一下数据库是否已经插入了该数据,截图如下:
(2)实现数据的查询,这是现实数据查询的代码:
public void query() throws Exception{
//建立连接
Mongo mongo = new Mongo("localhost",27017);
//获取指定的数据库
DB db = mongo.getDB("test");
//获取指定的集合
DBCollection dbCollection = db.getCollection("person");
DBObject dbObject = new BasicDBObject();
dbObject.put("name","wujinfan");
//DBCursor结果集
DBCursor cursor = dbCollection.find(dbObject);
while(cursor.hasNext()){
DBObject o = cursor.next();
System.out.println(o.toString());
}
}
我来讲解一下,查询前面的代码和插入是一样的,这里是通过name属性来查的,因为查询最会返回的是一个结果集,所以创建DBCursor对象,最后把结果集里面的东西迭代一下,
打印出来,截图如下:
![](https://img-blog.csdn.net/20170723113708991?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcm9ja3kxOTk2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(3)实现数据的更改,代码如下:
public void update() throws Exception{ //建立连接 Mongo mongo = new Mongo("localhost",27017); //获取指定的数据库 DB db = mongo.getDB("test"); //获取指定的集合 DBCollection dbCollection = db.getCollection("person"); BasicDBObject query = new BasicDBObject("_id",new ObjectId("59741894c976d5484a715f68")); BasicDBObject object = (BasicDBObject)dbCollection.findOne(query); object.put("name", "king"); int i = dbCollection.update(query, object).getN(); System.out.println(i); mongo.close(); }
我来解释一下:前面的代码和之前的一样,这里我们是用id来查找的,找到之后在进行键值对的重新更改,然后在打印在控制台上面,截图如下:
(4)实现集合的清空,代码如下:
实现集合中某条数据的删除,代码如下:public void delete() throws Exception{ //建立连接 Mongo mongo = new Mongo("localhost",27017); //获取指定的数据库 DB db = mongo.getDB("test"); //获取指定的集合 DBCollection dbCollection = db.getCollection("person"); DBObject dbObject = new BasicDBObject(); dbCollection.remove(dbObject); mongo.close(); }
public void deleteOne() throws Exception{ //建立连接 Mongo mongo = new Mongo("localhost",27017); //获取指定的数据库 DB db = mongo.getDB("test"); //获取指定的集合 DBCollection dbCollection = db.getCollection("person"); BasicDBObject query = new BasicDBObject("_id",new ObjectId("597314e5c976b243c37bcd15")); BasicDBObject object = (BasicDBObject)dbCollection.findOne(query); dbCollection.remove(object); mongo.close(); }
我来解释一下,实现集合的清空和集合中删除某条数据的区别就在于删除某一条数据时至于找到其所在的id即可,最后都是关闭mongo即可。