Java操作MongoDB实现增删改查
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.util.JSON;
public class TestMongoDB {
public static void main(String[] args) {
new TestMongoDB().save();
new TestMongoDB().queryAll();
new TestMongoDB().queryByName();
new TestMongoDB().update();
new TestMongoDB().del();
\}
// 实例化mongo对象,连接mongodb服务器 包含所有的数据库
protected static Mongo mongo = new Mongo();
// 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
protected static DB db = mongo.getDB("myMongo");
// 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
protected static DBCollection dbCollection = db.getCollection("user");
public void save() \{
try \{
// 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
//DB db = mongo.getDB("myMongo");
// 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
//DBCollection dbCollection = db.getCollection("user");
// 添加操作
BasicDBObject document = new BasicDBObject();
// 数据
document.put("id", 1);
document.put("name", "xiaoli");
document.put("age", 20);
document.put("email", "abcd1990@126.com");
document.put("sex", "男");
document.put("address", "广东省深圳市南山区");
// 保存到集合中
dbCollection.insert(document);
// 第二种:直接把json存到数据库中
String jsonTest = "\{'id':2,'name':'小明'," + "'address':\{'city':'beijing','code':'065000'\}" + "\}";
DBObject dbobjct = (DBObject) JSON.parse(jsonTest);
dbCollection.insert(dbobjct);
// 查询所有
DBCursor cursor = dbCollection.find();
System.out.println("--------添加数据后:");
while (cursor.hasNext()) \{
System.out.println(cursor.next());
\}
\} catch (Exception e) \{
e.printStackTrace();
\}
\}
public void queryAll() \{
try \{
// 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
//DB db = mongo.getDB("myMongo");
// 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
//DBCollection dbCollection = db.getCollection("user");
// 查询所有
DBCursor cursor = dbCollection.find();
System.out.println("---------查询所有:");
while (cursor.hasNext()) \{
System.out.println(cursor.next());
\}
\} catch (Exception e) \{
e.printStackTrace();
\}
\}
public void queryByName() \{
try \{
// 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
//DB db = mongo.getDB("myMongo");
// 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
//DBCollection dbCollection = db.getCollection("user");
BasicDBObject queryObject = new BasicDBObject();
queryObject.put("id", 1);
// 条件查询
DBCursor cursor = dbCollection.find(queryObject);
System.out.println("------------根据条件查询:");
while (cursor.hasNext()) \{
System.out.println(cursor.next());
\}
\} catch (Exception e) \{
e.printStackTrace();
\}
\}
public void update() \{
try \{
// 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
//DB db = mongo.getDB("myMongo");
// 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
//DBCollection dbCollection = db.getCollection("user");
BasicDBObject basObject = new BasicDBObject();
basObject.put("id", 1);
basObject.put("name", "xiaoli");
basObject.put("age", 20);
basObject.put("email", "abcd1990@126.com");
basObject.put("sex", "男");
basObject.put("address", "广东省深圳市南山区");
// 第一种更新
dbCollection.update(new BasicDBObject().append("age", 25), basObject);
// 第二种更新
BasicDBObject newBasicDBObject = new BasicDBObject().append("$set", new BasicDBObject().append("age", 5));
dbCollection.update(new BasicDBObject().append("id", 1), newBasicDBObject);
// 查询所有
DBCursor cursor = dbCollection.find();
System.out.println("更新后结果:");
while (cursor.hasNext()) \{
System.out.println(cursor.next());
\}
\} catch (Exception e) \{
e.printStackTrace();
\}
\}
public void del() \{
try \{
// 连接具体的数据库,参数是具体数据库的名称,若服务器中不存在,会自动创建
//DB db = mongo.getDB("myMongo");
// 操作具体的表,参数是具体表名称,若服务器上不存在,自动创建
//DBCollection dbCollection = db.getCollection("user");
BasicDBObject basObject = new BasicDBObject();
basObject.put("id", 2);
basObject.put("name", "小明");
// remove一条记录
dbCollection.remove(basObject);
// remove all
dbCollection.drop();
// find all
DBCursor cursor = dbCollection.find();
System.out.println("----------删除后:");
while (cursor.hasNext()) \{
System.out.println(cursor.next());
\}
\} catch (Exception e) \{
e.printStackTrace();
\}
\}
}
还没有评论,来说两句吧...