lalla1 发表于 2015-11-11 09:36:53

java操作mongoDB数据库的简单实例

  首先导入mongoDB的jar包http://pan.baidu.com/s/1bnGMJRD
  
  //DataBase.java
  package com.mongodb.test;
  import java.net.UnknownHostException;
  import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;
  public class DataBase {
public static void main(String[] args)
throws UnknownHostException, MongoException {
//1.建立一个Mongo的数据库连接对象
Mongo mg = new Mongo("127.0.0.1:27017");
      //查询所有的Database
      for (String name : mg.getDatabaseNames()) {
            System.out.println("dbName: " + name);
      }
      //2.创建相关数据库的连接
      DB db = mg.getDB("foobar");
      //查询数据库所有的集合
      for (String name : db.getCollectionNames()) {
            System.out.println("collectionName: " + name);
      }
      
      DBCollection users = db.getCollection("persons");
      //查询所有的数据
      DBCursor cur = users.find();
      while (cur.hasNext()) {
         DBObject object = cur.next();
         System.out.println(object.get("name"));
      }
      System.out.println(cur.count());
      System.out.println(cur.getCursorId());
      System.out.println(JSON.serialize(cur));
    }
}
//MongoDb.java
  package com.mongodb.test;
  import java.net.UnknownHostException;
import java.util.List;
  import org.bson.types.ObjectId;
  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.MongoException;
  public class MongoDb {
//1.建立一个Mongo的数据库连接对象
static Mongo connection = null;
//2.创建相关数据库的连接
static DB db = null;
public MongoDb(String dbName) throws UnknownHostException, MongoException{
connection = new Mongo("127.0.0.1:27017");
db = connection.getDB(dbName);
}
public static void main(String[] args) throws UnknownHostException, MongoException {
//实例化
MongoDb mongoDb = new MongoDb("foobar");
   /**
      * 1.创建一个名字叫javadb的数据库
      */
//mongoDb.createCollection("javadb");
/**
   * 2.为集合javadb添加一条数据
   */
//DBObject dbs = new BasicDBObject();
//dbs.put("name", "uspcat.com");
//dbs.put("age", 2);
//List<String>books = new ArrayList<String>();
//books.add(&quot;EXTJS&quot;);
//books.add(&quot;MONGODB&quot;);
//dbs.put(&quot;books&quot;, books);
//mongoDb.insert(dbs, &quot;javadb&quot;);
/**
   * 3.批量插入数据
   */
//List<DBObject> dbObjects = new ArrayList<DBObject>();
//DBObject jim = new BasicDBObject(&quot;name&quot;,&quot;jim&quot;);
//DBObject lisi = new BasicDBObject(&quot;name&quot;,&quot;lisi&quot;);
//dbObjects.add(jim);
//dbObjects.add(lisi);
//mongoDb.insertBatch(dbObjects, &quot;javadb&quot;);
/**
   * 4.根据ID删除数据
   */
//mongoDb.deleteById(&quot;502870dab9c368bf5b151a04&quot;, &quot;javadb&quot;);
/**
   * 5.根据条件删除数据
   */
//DBObject lisi = new BasicDBObject();
//lisi.put(&quot;name&quot;, &quot;lisi&quot;);
//int count = mongoDb.deleteByDbs(lisi, &quot;javadb&quot;);
//System.out.println(&quot;删除数据的条数是: &quot;&#43;count);
/**
   * 6.更新操作,为集合增加email属性
   */
//DBObject update = new BasicDBObject();
//update.put(&quot;$set&quot;,
//    new BasicDBObject(&quot;eamil&quot;,&quot;test@126.com&quot;));
//mongoDb.update(new BasicDBObject(),
//    update,false,true,&quot;javadb&quot;);
/**
   * 7.查询出persons集合中的name和age
   */
//DBObject keys = new BasicDBObject();
//keys.put(&quot;_id&quot;, false);
//keys.put(&quot;name&quot;, true);
//keys.put(&quot;age&quot;, true);
//DBCursor cursor = mongoDb.find(null, keys, &quot;persons&quot;);
//   while (cursor.hasNext()) {
//      DBObject object = cursor.next();
//      System.out.println(object.get(&quot;name&quot;));
//   }
   /**
      * 7.查询出年龄大于26岁并且英语成绩小于80分
      */
//DBObject ref = new BasicDBObject();
//ref.put(&quot;age&quot;, new BasicDBObject(&quot;$gte&quot;,26));
//ref.put(&quot;e&quot;, new BasicDBObject(&quot;$lte&quot;,80));
//DBCursor cursor = mongoDb.find(ref, null, &quot;persons&quot;);
//   while (cursor.hasNext()) {
//      DBObject object = cursor.next();
//      System.out.print(object.get(&quot;name&quot;)&#43;&quot;-->&quot;);
//      System.out.print(object.get(&quot;age&quot;)&#43;&quot;-->&quot;);
//      System.out.println(object.get(&quot;e&quot;));
//   }
/**
   * 8.分页例子
   */
DBCursor cursor = mongoDb.find(null, null, 0, 3, &quot;persons&quot;);
   while (cursor.hasNext()) {
      DBObject object = cursor.next();
      System.out.print(object.get(&quot;name&quot;)&#43;&quot;-->&quot;);
      System.out.print(object.get(&quot;age&quot;)&#43;&quot;-->&quot;);
      System.out.println(object.get(&quot;e&quot;));
   }
//关闭连接对象
connection.close();
}
/**
* 穿件一个数据库集合
* @param collName 集合名称
* @param db数据库实例
*/
public void createCollection(String collName){
DBObject dbs = new BasicDBObject();
db.createCollection(&quot;javadb&quot;, dbs);
}
/**
* 为相应的集合添加数据
* @param dbs
* @param collName
*/
public void insert(DBObject dbs,String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
//2.插入操作
coll.insert(dbs);
}
/**
* 为集合批量插入数据
* @param dbses
* @param collName
*/
public void insertBatch(List<DBObject> dbses,String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
//2.插入操作
coll.insert(dbses);
}
/**
* 根据id删除数据
* @param id
* @param collName
* @return 返回影响的数据条数
*/
public int deleteById(String id,String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
DBObject dbs = new BasicDBObject(&quot;_id&quot;, new ObjectId(id));
int count = coll.remove(dbs).getN();
return count;
}
/**
* 根据条件删除数据
* @param id
* @param collName
* @return 返回影响的数据条数
*/
public int deleteByDbs(DBObject dbs,String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
int count = coll.remove(dbs).getN();
return count;
}
/**
* 更新数据
* @param find 查询器
* @param update 更新器
* @param upsert 更新或插入
* @param multi 是否批量更新
* @param collName 集合名称
* @return 返回影响的数据条数
*/
public int update(DBObject find,
      DBObject update,
      boolean upsert,
      boolean multi,
      String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
int count = coll.update(find, update, upsert, multi).getN();
return count;
}
/**
* 查询器(分页)
* @param ref
* @param keys
* @param start
* @param limit
* @return
*/
public DBCursor find(DBObject ref,
   DBObject keys,
   int start,
   int limit,
   String collName){
DBCursor cur = find(ref, keys, collName);
return cur.limit(limit).skip(start);
}
/**
* 查询器(不分页)
* @param ref
* @param keys
* @param start
* @param limit
* @param collName
* @return
*/
public DBCursor find(DBObject ref,
   DBObject keys,
   String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
DBCursor cur = coll.find(ref, keys);
return cur;
}
}
  
         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: java操作mongoDB数据库的简单实例