Java连接,操作MongoDB

java连接MongoDB非常的简单,具体来说就2步: 1:向新建的工程中导入java-mongo的驱动包 如图:

2:建立一个链接帮助类,完成链接操作

package import javaimport javaimport import import import import import import 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对象,连接数据库ycdb=mongo.getDB(“yc”);//发送获得请求db.requestStart();//获得其集合Set<String> 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”){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;{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*/(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*/(Mongo mongo){if(mongo!=null){mongo.close();}}}//利用方法重载实现不同情况的传参/*** 获取指定的集合* @param collectionName :要链接的集合* @param dbName:集合所在的数据库* @return*/public DBCollection getDBCollection(String collectionName,String dbName){DBCollection dBCollection=null;if(getDB(dbName,null, null)){db.requestStart();if(collectionName==null){//如果为空则从配置文件中查找collectionName=MyPro.getInstance().getProperty(“collectionName”);}dBCollection=db.getCollection(collectionName);}else{RuntimeException(“数据库连接失败”);}return dBCollection;}/**** @param collectionName* @param dbName* @param name* @param password* @return*/public DBCollection getDBCollection(String collectionName,String dbName,String name,String password){DBCollection dBCollection=null;if(getDB(dbName,name, password)){db.requestStart();if(collectionName==null){//如果为空则从配置文件中查找collectionName=MyPro.getInstance().getProperty(“collectionName”);}dBCollection=db.getCollection(collectionName);}else{RuntimeException(“数据库连接失败”);}return dBCollection;}/*** 只传递集合名字* @param collectionName* @return*/public DBCollection getDBCollection(String collectionName){DBCollection dBCollection=null;String dbName=MyPro.getInstance().getProperty(“dbName”);if(getDB(dbName,null, null)){db.requestStart();if(collectionName==null){//如果为空则从配置文件中查找collectionName=MyPro.getInstance().getProperty(“collectionName”);}dBCollection=db.getCollection(collectionName);}else{RuntimeException(“数据库连接失败”);}return dBCollection;}

才能做到人在旅途,感悟人生,享受人生。

Java连接,操作MongoDB

相关文章:

你感兴趣的文章:

标签云: