Mongodb-使用javaDriver 实现增删改查

<pre name="code" class="java"><pre name="code" class="html">http://blog.csdn.net/lablenet
 
 

1.回顾

    上篇已经学习了使用 Mongodb_C#Driver 实现增删改查

2.重点

这篇将学习怎样使用和学习Mongodb_javaDriver 实现增删改查

3.准备篇

    在使用的时候请先准备开发环境(eclipse或myeclipse)和 Mongodb_Driver_Jar包  ,可以到官方网站下载,也可以点我下载

    3.1新建工程和倒入jar包

            1).新建mongoDb_demo工程       
            2).新建lib文件夹 ,复制jar包       
            3).add build path
            4)将刚倒入的包打上勾

    3.2开启服务

       使用命令开启服务  安装目录\bin  --dbpath  数据目录 (不会的去查看我的安装篇文章!)  


4.实现mongodb_driver 工具类

    花了2个小时,头还昏昏的,刚坐了近20小时的车,从上海来到学校,实现类有点粗糙,将就着可以用,有一点没实现,就是每次操作完数据库时,无法关闭,每次关闭连接,都需要重新的打开链接!也就是说次工具类,没有实现 关闭数据库!请谅解!



package Util;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;

public class MongodbHelper {
    
	//mongo连接
	private  Mongo mo=null;
	//数据库
	private  DB db=null;
	//集合

	
    //数据库名
    private  String dbname=null;
    private  String host=null;
    private  int port=27017;
    
	public MongodbHelper(){}
	
	public MongodbHelper(String host,int port,String dbName){
		
		this.dbname=dbName;
		this.host=host;
		this.port=port;
		createInstence(host, port);
		
	}

	/**
	 * 创建对象
	 * @param host
	 * @param port
	 * @return
	 */
	public  Mongo createInstence(String host,int port){
		
		if(mo==null){
			try {
				mo=new Mongo(host, port);
			} catch (UnknownHostException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (MongoException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return mo;
	}
	
	/*
	 * 连接数据库
	 */
	private  DB connDb(){
		
		if(mo==null){
			System.out.println("连接失败");
			return null;
		}else{
			if(db==null && dbname!=null){
				db=mo.getDB(this.dbname);
			}
		}
		return db;
	}
	
	
    /**
     *  创建集合
     * @param collName
     * @return
     */
	public  boolean createColl(String collName){
		
	    boolean flag=false;
	    if(db==null){
	    	connDb();
	    }
		if(db.collectionExists(collName)){
			System.out.println("集合已经存在!");
			return flag;
		}else{
			try{
		       db.createCollection(collName, null);
		       flag=true;
			}catch(Exception e){
				System.out.println("集合创建失败:异常信息:"+e.getMessage());
				return flag;
			}finally{
				closeMongo();
			}
		
		}
		return flag;
	}
	
	
    /**
     * 得到集合
     * @param collName
     * @return
     */
	
	public DBCollection getColl(String collName){
		if(mo==null){
			createInstence(host, port);
		}
	    if(db==null){
	    	connDb();
	    }
		DBCollection dbColl=db.getCollection(collName);
		return dbColl;
	}
	
	/**
	 * 新增 单个
	 * @param collName
	 * @param obj
	 * @return
	 */
	public boolean addDbobject(String collName,BasicDBObject obj){
		
		DBCollection coll=getColl(collName);
		try{
		   coll.insert(obj,WriteConcern.NONE);
		   return true;
		}catch (Exception e) {
			return false;
		}finally{
			this.closeMongo();
		}
	
	}
	
	/**
	 * 新增多个
	 * @param collName
	 * @param objlist
	 * @return
	 */
	public boolean addDbobject(String collName,List<DBObject> objlist){
		
		DBCollection coll=getColl(collName);
		try{
		   coll.insert(objlist);
		   return true;
		}catch (Exception e) {
			return false;
		}finally{
			this.closeMongo();
		}
	
	}

	/**
	 * 查询多条
	 * @param collName
	 * @return
	 */
	public List<DBObject> getlist(String collName){
		
		List<DBObject> list=new ArrayList<DBObject>();
	  try{
		DBCollection coll=getColl(collName);
	    DBCursor cursor=coll.find();
	    while(cursor.hasNext()){
	    	list.add(cursor.next());
	    }
	    return list;
	  }catch (Exception e) {
		System.out.println("查询出错了!"+e.getMessage());
		return null;
	  }finally{
		  this.closeMongo();
	  }
	}
	
	/**
	 * 查寻单个记录
	 * @param collName
	 * @param bobj
	 * @return
	 */
	public DBObject getdbobj(String collName,BasicDBObject bobj){
		DBCollection coll=getColl(collName);
		try{
			
		    DBObject ob=coll.findOne(bobj);
			
			return ob;
		}catch (Exception e) {
			// TODO: handle exception
			System.out.println("查询单条失败!"+e.getMessage());
			return null;
		}finally{
			this.closeMongo();
		}
	}
	
    
	/**
	 * 删除操作
	 * @param collName
	 * @param bobj
	 * @return
	 */
	public boolean rvdbobj(String collName,BasicDBObject bobj){
		
		DBCollection coll=getColl(collName);
		try{
			coll.remove(bobj);
			return true;
		}catch (Exception e) {
			// TODO: handle exception
			System.out.println("删除失败!"+e.getMessage());
			return false;
		}finally{
			this.closeMongo();
		}
	}
	
	/**
	 * 修改信息
	 * @param collName
	 * @param query
	 * @param o
	 * @return
	 */
	public boolean upbobj(String collName,BasicDBObject query,BasicDBObject o){
		DBCollection coll=getColl(collName);
		
		try{
			coll.update(query, o);
		    return true;
		}catch (Exception e) {
			System.out.println("更新修改操作失败!"+e.getMessage());
			return false;
		}finally{
			this.closeMongo();
		}
		
	}
	
	
	
	//关闭连接
	public  void closeMongo(){
		// mo.close();
	}
	
	
}

5.实现基本增删改查

    5.1 说明 

       这里实现的是最基本的增删改查,具体详细内容,还有自己去学习!

    5.2 初始化

<span style="font-size:18px;">    private final static  String HOST="127.0.0.1";
    private final static  int PORT=27017;
    private final static String DBNAME="student";</span>

    实例化工具类
<span style="font-size:18px;">   MongodbHelper helper=new MongodbHelper(HOST,PORT,DBNAME);</span>
   
    声明你要创建或操作的集合
<span style="font-size:18px;">   String collName="MongoYuan";</span>

   5.3 创建集合

<span style="font-size:18px;">         boolean flag= helper.createColl(collName);
         System.out.println(flag?"成功":"失败");</span>

   5.4 添加单条信息

<span style="font-size:18px;">         BasicDBObject bobj=new BasicDBObject("name", "hpu")
         .append("age", "106")
         .append("loaction", "河南焦作");
         helper.addDbobject(collName, bobj);</span>

   5.5 添加多条信息


<span style="font-size:18px;">         List<DBObject> dbList=new ArrayList<DBObject>();
         dbList.add(new  BasicDBObject("name","yuan").append("age", "22").append("location", "河南温县"));
         dbList.add(new  BasicDBObject("name","ming").append("age", "10").append("location", "河南理工"));
         dbList.add(new  BasicDBObject("name","zhuo").append("age", "42").append("location", "河南焦作"));
         helper.addDbobject(collName, dbList);</span>

    5.6 查询全部


<span style="font-size:18px;">           List<DBObject> list=helper.getlist(collName);
         for (DBObject dbObject : list) {
			System.out.println(dbObject);
	}</span>

    5.7简单的条件查询

<span style="font-size:18px;">         BasicDBObject query= new  BasicDBObject("name","yuan");
         DBObject dbo=helper.getdbobj(collName, query);
         System.out.println(dbo);</span>

    5.8 修改操作

<span style="font-size:18px;">         BasicDBObject query= new  BasicDBObject("name","yuan");
         BasicDBObject o=new  BasicDBObject("name","yuan").append("age", "22").append("location", "河南理工大学");
         helper.upbobj(collName, query, o);</span>


    5.9 删除操作

<span style="font-size:18px;">        BasicDBObject bobj=new BasicDBObject("name","yuan");
        boolean flag=helper.rvdbobj(collName, bobj);
        System.out.println(flag?"成功":"失败");</span>

6.总结 

   在这里仅仅实现最基本的增删改查,什么条件查询,多条件查询,全文检索,最终要的 索引操作,这里均没有实  现! mongodb的路还有很长!

7.demo 下载



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值