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