java串連MongoDB資料庫

來源:互聯網
上載者:User

標籤:mongodb   maven   java   

這段時間嘗試了一下MongoDB,感覺十分易用,方便,相比關係型的資料庫來說優勢也很大,於是嘗試了下使用java串連MongoDB,並進行了

基本的增刪改查操作。

首先先在控制台中串連資料庫,查看資料庫有幾個表。

現在,建立一個maven工程,pom.xml中的依賴如下:

<!--  WICKET DEPENDENCIES --><dependency><groupId>org.apache.wicket</groupId><artifactId>wicket</artifactId><version>${wicket.version}</version></dependency><!-- OPTIONAL <dependency><groupId>org.apache.wicket</groupId><artifactId>wicket-extensions</artifactId><version>${wicket.version}</version></dependency>--><!-- LOGGING DEPENDENCIES - LOG4J --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.4.2</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.14</version></dependency><!--  JUNIT DEPENDENCY FOR TESTING --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!--mongoDB for test--><dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>3.0.2</version></dependency><!--  JETTY DEPENDENCIES FOR TESTING  --><dependency><groupId>org.mortbay.jetty</groupId><artifactId>jetty</artifactId><version>${jetty.version}</version><scope>provided</scope></dependency><dependency><groupId>org.mortbay.jetty</groupId><artifactId>jetty-util</artifactId><version>${jetty.version}</version><scope>provided</scope></dependency><dependency><groupId>org.mortbay.jetty</groupId><artifactId>jetty-management</artifactId><version>${jetty.version}</version><scope>provided</scope></dependency></dependencies>

現在,在源檔案夾中建立MongoDb類

   編寫以下九個方法,以下幾個方法,就是主要的串連,增刪改查操作:
   
package com.haizhi.mongoDB.connect;import com.mongodb.*;import java.util.List;import java.util.Map;import java.util.Set;/** * Created by xiaxuan on 15/7/17. */public class MongoDb {    //1、串連到資料庫    public MongoClient getMongo(){        //1、串連到MongoDB資料庫        MongoClient mongo=new MongoClient("127.0.0.1",27017);        return mongo;    }    //2、擷取指定資料庫    public DB getDb(String DbName){        MongoClient mongo=getMongo();        return mongo.getDB(DbName);    }    //3、顯示資料庫中所有資料庫    public void showDb(){        MongoClient mongo=getMongo();        //顯示所有資料庫        List<String> dbs=mongo.getDatabaseNames();        for(String database:dbs){            System.out.println(database);        }    }    //4、擷取一個表    public DBCollection getTable(DB db,String tableName){        //如果表不存在,MongoDB將會建立一個        DBCollection table=db.getCollection("users");        return table;    }    //5、顯示資料庫中所有表    public void showTables(DB db){        //顯示選擇的資料庫中所有表        Set<String> tables=db.getCollectionNames();        for(String coll:tables){            System.out.println(coll);        }    }    //6、新增一條記錄    public void insert(Map<String,Object> map,DBCollection table){        BasicDBObject document=new BasicDBObject();        for(Object key:map.keySet()){            document.put((String) key, map.get(key));        }        table.insert(document);    }    //7、尋找並顯示一條記錄    public void search(BasicDBObject basicDBObject,DBCollection table){        DBCursor dbCursor=table.find(basicDBObject);        while(dbCursor.hasNext()){            System.out.println(dbCursor.next());        }        System.out.println("End");    }    //8、更新一條記錄    public void update(BasicDBObject query,BasicDBObject newDocument,DBCollection table){        BasicDBObject updateObj=new BasicDBObject();        updateObj.put("$set",newDocument);        table.update(query, updateObj);    }    //9、刪除一條記錄    public void delete(BasicDBObject basicDBObject,DBCollection table){        table.remove(basicDBObject);    }}

   現在,在test檔案夾中,建立測試類別:
   
  testInsert:
  
package com.haizhi.testMongoDB;import com.haizhi.mongoDB.connect.MongoDb;import com.mongodb.DBCollection;import com.mongodb.DB;import com.mongodb.MongoClient;import org.junit.Test;import java.util.HashMap;import java.util.Map;/** * Created by xiaxuan on 15/7/17. */public class testInsert {    @Test    public void insert(){        MongoDb mongoDb=new MongoDb();        MongoClient mongo=mongoDb.getMongo();        DB dB=mongoDb.getDb("MongoTest");        DBCollection table=mongoDb.getTable(dB, "users");        Map<String,Object> map=new HashMap<String, Object>();        map.put("id",3);        map.put("name","xiaxuan");        map.put("age",22);        map.put("sex",true);        map.put("nickname","bingwen");        mongoDb.insert(map,table);    }}

     執行完程式後,在資料庫中搜尋:

     在資料庫中查詢到,這一條記錄成功插入。

現在測試查詢:

       testSearch:

package com.haizhi.testMongoDB;import com.haizhi.mongoDB.connect.MongoDb;import com.mongodb.BasicDBObject;import com.mongodb.DBCollection;import com.mongodb.MongoClient;import com.mongodb.DB;import org.junit.Test;/** * Created by xiaxuan on 15/7/17. */public class testSearch {    @Test    public void testSearch(){        MongoDb mongoDb=new MongoDb();        MongoClient mongo=mongoDb.getMongo();        DB dB=mongoDb.getDb("MongoTest");        DBCollection talbe=mongoDb.getTable(dB, "users");        BasicDBObject basicDBObject=new BasicDBObject();        basicDBObject.append("name","xiaxuan");        mongoDb.search(basicDBObject,talbe);    }}

   成功查詢到兩條資料。

     修改的測試來源程式和刪除的基本相同,這裡就只貼出源碼,不再示範具體效果。

     testUpdate:

package com.haizhi.testMongoDB;import com.haizhi.mongoDB.connect.MongoDb;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.sun.xml.internal.rngom.parse.host.Base;import org.junit.Test;/** * Created by xiaxuan on 15/7/17. */public class testUpdate {    @Test    public void update(){        MongoDb mongoDb=new MongoDb();        DB dB=mongoDb.getDb("MongoTest");        DBCollection table=mongoDb.getTable(dB, "users");        BasicDBObject query=new BasicDBObject();        query.put("name","xiaxuan");        BasicDBObject newDocument=new BasicDBObject();        newDocument.put("name","bingwen");        mongoDb.update(query,newDocument,table);    }}

testDelete:

package com.haizhi.testMongoDB;import com.haizhi.mongoDB.connect.MongoDb;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import org.junit.Test;/** * Created by xiaxuan on 15/7/17. */public class testDelete {    @Test    public void delete(){        MongoDb mongoDb=new MongoDb();        DB dB=mongoDb.getDb("MongoTest");        DBCollection table=mongoDb.getTable(dB, "users");        BasicDBObject basicDBObject=new BasicDBObject();        basicDBObject.put("name","xiaxuan");        mongoDb.delete(basicDBObject,table);    }}
串連Mongodb,以及基本的增刪改查操作,就是這些,串連MongoDb,操作,基本操作都還是比較簡單。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

java串連MongoDB資料庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.