Java连接,操作MongoDB
来源:互联网 发布:淘宝迪奥正品店 编辑:程序博客网 时间:2024/06/07 00:25
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<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")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 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{ //抛出异常 throw new 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{ //抛出异常 throw new 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{ //抛出异常 throw new RuntimeException("数据库连接失败"); } return dBCollection; }
1 0
- Java连接,操作MongoDB
- java操作mongodb(连接池)
- java操作mongodb(连接池)
- java操作mongodb(连接池)
- Java 连接 Mongodb 增删改查操作
- [mongodb]java操作mongodb
- [mongodb]java操作mongodb
- MongoDB连接测试操作
- mongodb连接操作
- PHP连接MongoDB操作
- Java 连接MongoDB并进行insert delete操作
- java 实现操作mongodb的连接,增删查改
- mongodb学习(java操作mongodb)
- mongodb初学-java操作mongodb
- Java连接MongoDB
- java连接mongoDB
- MongoDB Java 连接
- java连接mongodb
- 获取控件相对父窗口的坐标
- 关于常用排序等算法的例子整理
- 查看oracle rac 各节点公网,私网ip信息
- LINUX常用命令
- 数据结构(Java语言)——HashTable(开放定址法)简单实现
- Java连接,操作MongoDB
- C源码@数据结构与算法->Sorting
- [分布式java]基于JavaAPI实现消息方式的系统间通信:UDP/IP+BIO
- 存储过程的调用
- js循环
- PCIE协议解析 synopsys IP DBI and LBC 读书笔记(6)
- 小甲鱼Python第六讲课后题
- uitextfield 偶尔无法选中问题解决办法
- Unity3d资源写入Android内置存储卡