设为首页 加入收藏

TOP

Java连接,操作MongoDB(一)
2015-11-21 01:58:27 来源: 作者: 【 】 浏览:2
Tags:Java 连接 操作 MongoDB

java连接MongoDB非常的简单,具体来说就2步:
1:向新建的工程中导入java-mongo的驱动包
如图:
这里写图片描述
2:建立一个链接帮助类,完成链接操作

package com.yc.mongodb;
import java.util.Iterator;
import java.util.Set;

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.WriteResult;

public class MongoLink2 {

    public static void main(String[] args) {
        Mongo mongo=null;
        DB db=null;
        try {
            //链接mongo服务器
            mongo=new Mongo("127.0.0.1",27017);

            //根据mongodb数据库的名称获得DB对象,连接数据库yc
            db=mongo.getDB("yc");
            //发送获得请求
            db.requestStart();
            //获得其集合
            Set
   
     collections=db.getCollectionNames(); Iterator itr=collections.iterator(); //迭代输出信息 while(itr.hasNext()){ System.out.println(itr.next()); } DBCollection dbObject=db.getCollection("yc"); DBObject object=null; //添加 object=new BasicDBObject(); object.put("_id", 1003); object.put("name","张三"); object.put("sex","男"); WriteResult rs=dbObject.insert(object); object.put("_id", 1002); //移除 dbObject.remove(new BasicDBObject()); //查询所有 DBCursor cursor=dbObject.find(); while(cursor.hasNext()){ object=cursor.next(); System.out.println(object); } } catch (Exception e) { e.printStackTrace(); }finally{ if(mongo!=null){ mongo.close(); } } } } 
   

运行的结果如下:
这里写图片描述
至此,其实已经可以使用,代码的耦合太高,功能捆绑的太严重,不方便调用,
接着对其进行封装。

先定义一个属性文件:
这里写图片描述
里面定义了一些基本的配置,例如用户名,数据库名,ip,端口等。
接着定义一个类去读取其文件.这里文件的话最好被定义为单例,

package com.yc.mongodb; import java.io.IOException; import java.io.InputStream; import java.util.Properties; @SuppressWarnings("serial") public class MyPro extends Properties{ private static MyPro instanece=new MyPro(); private MyPro(){ InputStream is=MyPro.class.getResourceAsStream("/db.properties"); try { this.load(is); } catch (IOException e) { e.printStackTrace(); }finally{ if(is!=null){ try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } } public static MyPro getInstance(){ return instanece; } } 

像操作oracle一样定义一个DBHelper类,实现对数据操作的封装:
如下:

package com.yc.mongodb; import java.net.UnknownHostException; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.Mongo; import com.mongodb.MongoException; public class DBHelper { private static Mongo mongo=null; private DB db=null; private DBCollection collection=null; static{ try { mongo=new Mongo(MyPro.getInstance().getProperty("ip"),Integer.parseInt(MyPro.getInstance().getProperty("port"))); } catch (NumberFormatException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } System.out.println(mongo); } /** * * @param dbName * @param name * @param pwd * @return */ public boolean getDB(String dbName,String name,String pwd){ db=mongo.getDB(dbName); if(name!=null&&!"".equals(name)&&pwd!=null&&!"".equals(pwd)){ if(db.authenticate(name, pwd.toCharArray())){ return true; }else{ return false; } }else{ //查看配置文件中是否给定了用户名和密码 String uname=MyPro.getInstance().getProperty("uname"); String pwds=MyPro.getInstance().getProperty("password"); if(uname!=null&&!"".equals(uname)&&pwds!=null&&!"".equals(pwds)){ if(db.authenticate(uname, pwds.toCharArray())){ return true; }else{ return false; } } } return true; } /** * 关闭连接 * @param mongo */ public void closeAll(Mongo m
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇第一课MongoDB概述与安装 下一篇JDBC批量处理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: