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的路还有很长!