java 操作mongodb_Java操作MongoDB快速入门教程

Mongodb驱动下载:

Mongodb在线JavaAPI:

Mongodb创建数据库、用户名和密码:

use demo;

db.demo.insert({name:'demo'});

db.addUser('root','root123')

Java操作MongoDB代码实例:

package com.what21.mongodb.demo;

import java.util.ArrayList;

import java.util.List;

import java.util.Set;

import com.mongodb.BasicDBObject;

import com.mongodb.DB;

import com.mongodb.DBCollection;

import com.mongodb.DBCursor;

import com.mongodb.DBObject;

import com.mongodb.MongoClient;

import com.mongodb.MongoClientOptions;

import com.mongodb.MongoCredential;

import com.mongodb.ServerAddress;

import com.mongodb.WriteResult;

public class OperateDemo {

/**

* @return

* @throws Exception

*/

public static MongoClient getMongoClient()throws Exception{

try {

//===================================================//

List serverList = new ArrayList();

serverList.add(new ServerAddress("192.168.18.85", 27017));

//===================================================//

List mcList = new ArrayList();

String username = "root";

String database = "demo";

char[] password = "root123".toCharArray();

mcList.add(MongoCredential.createCredential(username, database,password));

//===================================================//

MongoClientOptions.Builder builder = MongoClientOptions.builder();

// 与目标数据库能够建立的最大connection数量为50

builder.connectionsPerHost(50);

// 如果当前所有的connection都在使用中,则每个connection上可以有50个线程排队等待

builder.threadsAllowedToBlockForConnectionMultiplier(50);

// 一个线程访问数据库的时候,在成功获取到一个可用数据库连接之前的最长等待时间为2分钟

// 这里比较危险,如果超过maxWaitTime都没有获取到这个连接的话,该线程就会抛出Exception

// 故这里设置的maxWaitTime应该足够大,以免由于排队线程过多造成的数据库访问失败

builder.maxWaitTime(1000*60*2);

// 与数据库建立连接的timeout设置为1分钟

builder.connectTimeout(1000*60*1);

//===================================================//

MongoClientOptions mco = builder.build();

return new MongoClient(serverList, mcList, mco);

} catch (Exception e) {

throw e;

}

}

/**

* @param dbname

* @return

* @throws Exception

*/

public static DB getDB(String dbname) throws Exception{

return getMongoClient().getDB(dbname);

}

/**

* @param db

*/

public static void collections(DB db){

Set colls = db.getCollectionNames();

for (String collName : colls) {

System.out.println(collName);

}

}

/**

* @param db

* @param name

*/

public static void insert(DB db,String name){

DBCollection dbColl = db.getCollection(name);

WriteResult result = null;

List objectList = new ArrayList();

for(int i=0;i<100;i++){

BasicDBObject obj = new BasicDBObject();

obj.put("name", "name" + (i+1));

obj.put("email", "email@" + (i+1) + ".com");

obj.put("passwd", "p" + (i+1));

objectList.add(obj);

}

result = dbColl.insert(objectList);

System.out.println(result);

}

/**

* @param db

* @param name

*/

public static void findOne(DB db,String name){

DBCollection dbColl = db.getCollection("users");

for(int i=0;i<100;i++){

BasicDBObject query = new BasicDBObject();

query.put("name", "name" + (i+1));

DBObject obj = dbColl.findOne(query);

System.out.print("name=" + obj.get("name"));

System.out.print(",email=" + obj.get("email"));

System.out.println(",passwd=" + obj.get("passwd"));

}

}

/**

* @param db

* @param name

*/

public static void update(DB db,String name){

DBCollection dbColl = db.getCollection(name);

WriteResult result = null;

for(int i=0;i<100;i++){

BasicDBObject query = new BasicDBObject();

query.put("name", "name" + (i+1));

DBObject obj = dbColl.findOne(query);

obj.put("email", "email" + (i+1) + "@qq.com");

result = dbColl.update(query, obj);

System.out.println(result);

}

}

/**

* @param db

* @param name

*/

public static void remove(DB db,String name){

DBCollection dbColl = db.getCollection(name);

WriteResult result = null;

for(int i=0;i<100;i++){

BasicDBObject obj = new BasicDBObject();

obj.put("name", "name" + (i+1));

result = dbColl.remove(obj);

System.out.println(result);

}

}

/**

* @param db

* @param name

*/

public static void queryAll(DB db,String name){

DBCollection dbColl = db.getCollection(name);

DBCursor cur = dbColl.find();

int count = 0;

while (cur.hasNext()) {

DBObject obj = cur.next();

System.out.print("name=" + obj.get("name"));

System.out.print(",email=" + obj.get("email"));

System.out.println(",passwd=" + obj.get("passwd"));

count ++;

}

System.out.println("共有: " + count + "个");

}

/**

* @param args

* @throws Exception

*/

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

DB db = getDB("demo");

collections(db);

String name = "users";

System.out.println("insert()=================================================");

insert(db,name);

System.out.println("findOne()=================================================");

findOne(db,name);

System.out.println("update()=================================================");

update(db,name);

System.out.println("findOne()=================================================");

findOne(db,name);

System.out.println("remove()=================================================");

remove(db,name);

System.out.println("queryAll()=================================================");

queryAll(db,name);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值