public class MongoManager {
private static final String MONGO_DBNAME="local";
private static final String COLLECTION_NAME="person";
private Mongo mongo=null;
private DB db=null;
private DBCollection coll=null;
public MongoManager(){
try {
mongo=new Mongo();
db=mongo.getDB(MONGO_DBNAME);
coll=db.getCollection(COLLECTION_NAME);
System.out.println("db:"+db+",coll:"+coll);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MongoException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void destory(){
if(mongo !=null){
mongo.close();
mongo=null;
db=null;
}
}
//查询单个与查询多个.
public void queryAll(){
System.out.println("queryAll start...");
DBCursor cursor = coll.find();
while(cursor.hasNext()){
System.out.println("queryAll:"+cursor.next());
}
}
//单条插入与多条插入。
public void add(){
queryAll();
System.out.println("add befor count:"+coll.count());
for(int i=0;i<5;i++){
DBObject object=new BasicDBObject();
object.put("name", "lkj"+i);
object.put("age", i);
object.put("sex", "男");
coll.save(object);
}
System.out.println("add after count:"+coll.count());
}
//单条更新与多条更新。
public void update(){
//int i=coll.update(new BasicDBObject("_id",new ObjectId("5680d3844b3ad1cd62dc8a82")), new BasicDBObject("age","22")).getN();
//System.out.println("update i:"+i);
// int j=coll.update(new BasicDBObject("_id", new ObjectId("5680d3844b3ad1cd62dc8a82")), new BasicDBObject("age", "23"), true, false).getN();
// System.out.println("update j:"+j);
BasicDBObject db=new BasicDBObject("name", "lkj");
db.append("age", 21);
db.append("sex", "男");
BasicDBObject db2=new BasicDBObject("$set", db);
BasicDBObject db3=new BasicDBObject();
Pattern p=Pattern.compile("^lkp2.*$", Pattern.CASE_INSENSITIVE);
db3.append("name", p);
//int k=coll.update(new BasicDBObject("_id", new ObjectId("5680d3844b3ad1cd62dc8a83")), db2).getN();
//前面是满足条件的,后面是要更新的内容.
int k=coll.updateMulti(db3, db2).getN();
System.out.println("update k:"+k);
}
//单条删除与多条删除
public void delete(){
//int i=coll.remove(new BasicDBObject("_id",new ObjectId("5680d3844b3ad1cd62dc8a82"))).getN();
//System.out.println("delete i:"+i);
BasicDBObject db3=new BasicDBObject();
Pattern p=Pattern.compile("^lkj.*$", Pattern.CASE_INSENSITIVE);
db3.append("name", p);

BasicDBList dblist=new BasicDBList();
dblist.add("lkj0");
dblist.add("lkj1");
BasicDBObject db=new BasicDBObject("name", new BasicDBObject("$in", dblist));
int k=coll.remove(db).getN();
System.out.println("delete k:"+k);
}
//查询单个.多个条件.模糊查询.
public void querySingle(){
// BasicDBObject db=new BasicDBObject("_id", new ObjectId("5680d2cb4b3ae0e80dc4cd16"));
// BasicDBObject db2=new BasicDBObject("age", new BasicDBObject("$lte", 26));
// db2.append("name", "lkj");
// db2.append("sex", "男");
// BasicDBList dblist=new BasicDBList();
// dblist.add(2);
// dblist.add(3);
// dblist.add(4);
BasicDBObject db=new BasicDBObject();
// db.put("age", new BasicDBObject("$in", dblist));
Pattern p=Pattern.compile("^.*1$", Pattern.CASE_INSENSITIVE);
db.append("name", p);
DBCursor cursor = coll.find(db);
while(cursor.hasNext()){
System.out.println("querySingle:"+cursor.next());
}
}
public static void main(String[] args) {
MongoManager mm=new MongoManager();
//mm.add();
//mm.update();
// mm.delete();
mm.queryAll();
//mm.querySingle();
}
}

mongodb测试类的更多相关文章

  1. mongoDB工具类以及测试类【java】

    java操作mongo工具类 package Utils; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; im ...

  2. JAVA单例MongoDB工具类

    我经常对MongoDB进行一些基础操作,将这些常用操作合并到一个工具类中,方便自己开发使用. 没用Spring Data.Morphia等框架是为了减少学习.维护成本,另外自己直接JDBC方式的话可以 ...

  3. Spring-test使用JUnit时,测试类autowired报错,create bean error

    Spring-test使用JUnit时,测试类里面使用autowired会报错, 报create bean error...... 但是controller里面@autowired可以正常运行的. 在 ...

  4. 22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表。然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法showB输出大写的英文字母表。最后编写主类C,在主类的main方法 中测试类A与类B。

    22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表.然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法sh ...

  5. Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

    #29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...

  6. 在Eclipse中生成接口的JUnit测试类

    在Spring相关应用中,我们经常使用“接口” + “实现类” 的形式,为了方便,使用Eclipse自动生成Junit测试类. 1. 类名-new-Other-java-Junit-Junit Tes ...

  7. TestNG之执行测试类方式

    TestNG提供了很多执行方式,下面做简单介绍. 1.XML指明测试类,按照类名执行,其中可以指定包名,也可指定无包名: 带包名,运行ParameterSample类和ParameterTest类 & ...

  8. XCode中的单元测试:编写测试类和方法(内容意译自苹果官方文档)

    当你在工程中通过测试导航栏添加了一个测试target之后, xcode会在测试导航栏中显示该target所属的测试类和方法. 这一章演示了怎么创建测试类,以及如何编写测试方法. 测试targets, ...

  9. 各种数据库连接代码的测试类(java)

    测试类: public class Mytest { Connection conn=null; Statement stmt=null; String myDriver="com.mysq ...

随机推荐

  1. hdu1158【DP】

    题意: 第一行项目数: 第二行每个工人的Hire Salary Fire money 第三行每个项目需要的人的数量: 工人在hire/fire的时候要付出额外的钱,如果已经hire了还没有fire就一 ...

  2. 骨骼动画反向动力学(IK)的实现

    反向动力学,Inverse Kinematics,简称IK.简单地说,由父骨骼的方位和子骨骼的相对变换得到子骨骼的方位,称为正向动力学(Forward Kinematics,FK):而IK则是先确定子 ...

  3. Cordova 系列之Mac OS 环境配置

    1.从AppStore 安装xcode 2.安装node.js环境 http://nodejs.org/ 3.使用命令行安装 cordova 命令行帮助:http://cordova.apache.o ...

  4. bzoj 4597||洛谷P4340 [Shoi2016]随机序列

    https://www.lydsy.com/JudgeOnline/problem.php?id=4597 https://www.luogu.org/problemnew/show/P4340 妄图 ...

  5. hibernate Day2 笔记

    1.主键生成策略 <!--映射配置文件 >映射配置文件名称和位置没法有固定要求 >映射配置文件中的name属性值写实体类相关内容 -- class 标签name属性值实体类全路径 - ...

  6. axios 在vue中使用

    下载组件: npm install axios --save npm install qs --save //处理对象防止产生跨域问题 引入: 新建axios文件夹,文件下新建index.js文件 i ...

  7. 牛客网Java刷题知识点之同步方法和同步代码块的区别(用synchronized关键字修饰)

    不多说,直接上干货! 扩展博客 牛客网Java刷题知识点之多线程同步的实现方法有哪些 为何要使用同步?      java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查 ...

  8. Connection conn = DriverManager.getConnection("jdbc:odbc:bbs");

    Connection conn = DriverManager.getConnection("jdbc:odbc:bbs"); 这是JDBC连接数据库的时候用的一句话,,Conne ...

  9. vs2013修改为双击打开文件

    vs2012和vs2013默认是单击打开文件,让人突然就不习惯了,各种不爽. 修改方法: 工具-选项-环境-选项卡和窗口-不勾选允许在预览选项卡中打开新文件.

  10. phpmyadmin消除无法保存最近表的提示

    运行 sudo dpkg-reconfigure phpmyadmin 重新配置phpmyadmin ip选择127.0.0.1,端口3306,"MySQL username for php ...