java操作MongoDB

来源:互联网 发布:知乎用户分析 编辑:程序博客网 时间:2024/06/06 05:51

开发环境:

System:Windows8.1

IDE:eclipse

Database:mongoDB

开发依赖库:

mongo-java-driver-2.5.jar


配置文件 mongodbpool.properties

db=localhost=127.0.0.1port=27017size=20block=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对象,可以用此对象获得Databasemongo = 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();//删除指定_idcoll.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 0
原创粉丝点击