標籤: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資料庫