java操作MongoDB

开发环境:

System:Windows8.1

IDE:eclipse

Database:mongoDB

开发依赖库:

mongo-java-driver-2.5.jar


配置文件 mongodbpool.properties

db=local
host=127.0.0.1
port=27017
size=20
block=20

MongoDBManager.class

package com.lyh.mongo;

import java.util.Properties;
import com.lyh.util.ReadProperties;
import com.mongodb.DB;
import com.mongodb.Mongo;

/**
 * @Description:MongoDB的对象和连接
 * @ClassName:MongoManager.java
 * @author:liyon_000
 * @time:2016-1-28 下午2:59:20
 */
public class MongoManager {
	private static Mongo mongo = null;
	private static  String confFilePath="/mongodbpool.properties";
	private static Properties pro = null;
	private MongoManager() {
	}

	/**
	 * 根据名称获取DB,相当于连接
	 * @param dbName
	 * @return
	 */
	public static DB getDB() {
		pro = ReadProperties.getProperties(confFilePath);
		if (mongo == null) {
			init();
		}
		return mongo.getDB(pro.getProperty("db"));
	}
	/**
	 * 初始化连接池,设置参数
	 */
	private static void init() {
		//mongodb部署的ip地址
		String host = pro.getProperty("host");
		//mongodb部署的接口
		int port = Integer.parseInt(pro.getProperty("port"));
		try {
			//获得mongo对象,可以用此对象获得Database
			mongo = new Mongo(host, port);
			for (String name:mongo.getDatabaseNames()) {
				System.out.println("dbName:"+name);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}

读取配置文件类ReadProperties.java

package com.lyh.util;

import java.io.InputStream;
import java.util.Properties;
/**
 * @Description:读取配置文件
 * @ClassName:ReadProperties.java
 * @author:liyon_000
 * @time:2016-1-28 下午3:09:22
 */
public class ReadProperties {
	
	private ReadProperties(){}
	private static Properties properties = null;
	static{
		if(properties ==null){
			properties = new Properties();
		}
	}
	private static void init(String filePath){
		InputStream inputStream  = Object.class.getResourceAsStream(filePath);
		try {
			properties.load(inputStream);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static Properties getProperties(String filePath){
		init(filePath);
		return properties;
	}
}

基类BusinessObject.java

package com.lyh.mongo;
import com.mongodb.DB;
import com.mongodb.DBCollection;

/**
 * @Description:基类
 * @ClassName:BusinessObject.java
 * @author:liyon_000
 * @time:2016-1-28 下午3:53:09
 */
public class BusinessObject {
	private static DB db;
	private static DBCollection dbCollection;
	static {
		db =MongoManager.getDB();
	}
	public  static DBCollection getDbCollection(String document){
		dbCollection = db.getCollection(document);
		return dbCollection;
	}
}

MongoDB操作类

package com.lyh.book;

import java.util.ArrayList;
import java.util.List;

import org.bson.types.ObjectId;
import com.lyh.mongo.BusinessObject;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;

/**
 * @Description:book的mongoDB操作例子
 * @ClassName:BookMongoDemo.java
 * @author:liyon_000
 * @time:2016-1-28 下午3:48:07
 */
public class BookMongoDemo extends BusinessObject{
	
	public static DBCollection coll = null;
	public static DBCursor cur = null;
	
	/**
	 * 查询所有的book数据,只作为检测数据
	 */
	private static void queryAll(){
		System.out.println("查询所有book的数据:");
		cur = coll.find();
		while (cur.hasNext()) {
			System.out.println(cur.next());
		}
	}
	
	public static void insert(){
		queryAll();
		DBObject book = new BasicDBObject();
		book.put("name", "爱你如初");
		book.put("price", 40);
		book.put("author", "张爱玲");
		book.put("press", "中国教育出版社");
		book.put("kind", "TE001");
		coll.save(book);
		System.out.println(coll.save(book).getN());
		
	}
	
	public static void insertList(){
		queryAll();
		DBObject book = new BasicDBObject();
		book.put("_id", "123456");  //必须有_,尽量不要让mongodb自动生成
		book.put("name", "如若有你,一世欢喜");
		book.put("price", 23);
		book.put("author", "锦竹");
		book.put("press", "杭州文艺出版社");
		book.put("kind", "TE001");
		
		List<DBObject> list = new ArrayList<DBObject>();
		list.add(book);
		coll.insert(list);
		System.out.println(coll.insert(list).getN());
		
	}
	
	public static void remove(){
		queryAll();
		//删除指定_id
		coll.remove(new BasicDBObject("_id", new ObjectId("56a99144a6e10b29746f0a18")));
		queryAll();
		//删除价格大于80的
		coll.remove(new BasicDBObject("price",new BasicDBObject("$gte", 80)));
		queryAll();
	}
	
	public static void modify(){
		queryAll();
		DBObject book = new BasicDBObject();
		book.put("name", "花间");
		book.put("price", 23);
		book.put("author", "兰思思");
		book.put("press", "北京文艺出版社");
		book.put("kind", "TE001");
		//_id为56a9d224483881c662edee9a的数据中press改为北京文艺出版社
		coll.update(new BasicDBObject("_id", new ObjectId("56a9d224483881c662edee9a")),book);
	}
	
	
	public static void find(){
		DBCursor dbcur =coll.find(new BasicDBObject("author","胡辛束"));
		while(dbcur.hasNext()){
			System.out.println(dbcur.next());
		}
	}
	
	public static void main(String[] args) {
		coll = getDbCollection("book");
		queryAll();
		//insert();
		//insertList();
		//remove();
		//modify();
		//find();
	}

}
总结到这吧,简单的操作,还需要深入的学习


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值