1. 程式人生 > >mongodb--java連線資料庫實現增刪改查

mongodb--java連線資料庫實現增刪改查

1.新建一個maven專案,匯入

<dependencies>  
    <dependency>  
      <groupId>junit</groupId>  
      <artifactId>junit</artifactId>  
      <version>3.8.1</version>  
      <scope>test</scope>  
    </dependency>  
    <dependency>  
        <groupId>org.mongodb</groupId>  
        <artifactId>mongo-java-driver</artifactId>  
        <version>2.10.1</version>  
    </dependency>  
    <dependency>  
        <groupId>org.codehaus.jackson</groupId>  
        <artifactId>jackson-core-asl</artifactId>  
        <version>1.9.9</version>  
    </dependency>  
    <dependency>  
        <groupId>org.codehaus.jackson</groupId>  
        <artifactId>jackson-mapper-asl</artifactId>  
        <version>1.9.9</version>  
    </dependency>  
      <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.1</version>
</dependency>
  </dependencies>  

2.連線資料庫查詢所有資料表和集合程式碼:

public static void main(String[] args) throws UnknownHostException {

Mongo mongo = new Mongo("localhost", 27017);//預設可以不寫:
        for (String dbName : mongo.getDatabaseNames()) {
            System.out.println("資料庫例項:" + dbName);
        }
        DB db = mongo.getDB("demo");//這個就是資料表-》use demo時建立的
        for (String cName : db.getCollectionNames()) {//遍歷demo這個資料表中的集合
            System.out.println("demo存在的集合:" + cName);
        }
        DBCollection webInfo = db.getCollection("test");
        //這個是dos命令在db.test.insert()....操作時自動建立的test集合
        //手動建立某個資料表的集合語法:先進入某個資料表:1.use xxx 2.db.集合名.insert(等操作)這個會建立集合
        //或者直接在某個資料表中輸入命令:db.createCollection("集合名")
        DBCursor dbCursor = webInfo.find();
        //這個找到test集合或遍歷集合中的所有資料
        while (dbCursor.hasNext()) {
            System.out.println("每個文件資料為:" + dbCursor.next());
        }
        //或者這種遍歷集合的方法也可以
        for (Iterator it = dbCursor.iterator(); it.hasNext();) {
            System.out.println("每個文件資料為:" + it.next());
        }
        //輸出集合的個數
        System.out.println("文件個數為:" + dbCursor.count());
        //利用mongodb自帶的json轉化為序列化文件
        System.out.println("序列化此文件"+JSON.serialize(dbCursor));

}

3.java----mongodb新增資料:

private void add(User user) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db= mongo.getDB("demo");
if(db!=null){
DBCollection jihe=db.getCollection("user");
if(jihe!=null){
Gson gson=new Gson();
System.out.println(gson.toJson(user));
DBObject dbObject=(DBObject)JSON.parse(gson.toJson(user));
jihe.insert(dbObject);
}
}
System.out.println("新增成功");
}

4.java----mongodb查詢資料:

private DBObject findOne(User user) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
if(db!=null){
DBCollection dbc=db.getCollection("user");
if(dbc!=null){
Gson gson=new Gson();
DBObject dbo=(DBObject)JSON.parse(gson.toJson(user));
DBObject  result=dbc.findOne(dbo);
System.out.println("查詢成功");
return result;
}
}
return null;
}

5.java---mongodb修改資料

private void update(User user1,User user) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
DBCollection dbc=db.getCollection("user");
Gson gson=new Gson();
DBObject q=(DBObject)JSON.parse(gson.toJson(user1));
DBObject o=(DBObject)JSON.parse(gson.toJson(user));
dbc.update(q, o);
System.out.println("修改成功");
}

6.java---mongodb刪除資料

private void delete(int id) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
DBCollection  dbc= db.getCollection("user");
Gson gson=new Gson();
User user=new User();
user.setId(id);
DBObject dbo=(DBObject)JSON.parse(gson.toJson(user));
dbc.remove(dbo);
System.out.println("刪除成功");
}

7.java---mongodb查詢所有

private List<DBObject> findAll() throws UnknownHostException{
List<DBObject> list=new ArrayList<DBObject>();
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
if(db!=null){
DBCollection dbc=db.getCollection("user");
if(dbc!=null){
DBCursor  result=dbc.find();
while (result.hasNext()) {
list.add(result.next());
}
System.out.println("查詢成功");
return list;
}
}
return list;
}