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. CodeForces660B【模拟—水】

    感觉模拟题用函数分块写比较清晰~传参的话,字符串要么直接全局,或者指针也是容易操作,总之思路清晰,然后分块清晰,模拟wa的少吧. 这题水题,不说了. #include <bits/stdc++. ...

  2. Codevs 1569 最佳绿草

    1569 最佳绿草  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 贝茜正计划着这一天如何美美地咀嚼春天的绿 ...

  3. jzoj5987. 【WC2019模拟2019.1.4】仙人掌毒题 (树链剖分+概率期望+容斥)

    题面 题解 又一道全场切的题目我连题目都没看懂--细节真多-- 先考虑怎么维护仙人掌.在线可以用LCT,或者像我代码里先离线,并按时间求出一棵最小生成树(或者一个森林),然后树链剖分.如果一条边不是生 ...

  4. Mysql用户root密码找回

    1.本试例的环境如下: 2.mysql数据库的版本如下,此数据库运行多实例: mysql Ver 15.1 Distrib 10.2.24-MariaDB, for Linux (x86_64) us ...

  5. TYVJ1424占卜DIY

    Description lyd学会了使用扑克DIY占卜.方法如下:一副去掉大小王的扑克共52张,打乱后均分为13堆,编号1~13,每堆4张,其中第13堆称作“生命牌”,也就是说你有4条命.这里边,4张 ...

  6. STP-2-三个选择

    1.选择根交换机 2.确定根端口 3.确定指定端口     1.选择根交换机   stp中只有一台交换机能成为根(Root),每台交换机按自己的STP逻辑,先发一个hello称自己为根,如果收到了比自 ...

  7. [题解](区间质数筛)POJ_2689 Prime Distance

    区间筛素数:先筛出1~sqrt(R)的素数,然后对于每个询问只要用这些素数筛掉区间内的合数即可. 几个细节:1.特判和1有关的一些情况 2.每次减去L偏移量,数组只开区间大小 3.POJ无法使用万能头 ...

  8. [题解]luogu_P2613有理数取余

    #include<bits/stdc++.h> #define ll long long using namespace std; ; inline int read(){ ,fix=;c ...

  9. JS 两个数组合并

    让我们先考虑下面这情况: 代码如下: var a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ];var b = [ "foo", "bar", ...

  10. 洛谷P2470||bzoj1068 [SCOI2007]压缩

    bzoj1068 洛谷P2470 区间dp入门题?只要注意到每个M“管辖”的区间互不相交即可 错误记录:有点小坑,比如aaaacaaaac最优解为aRRcR(意会坑在哪里),踩了一次 #include ...