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. CF960G Bandit Blues(第一类斯特林数)

    传送门 可以去看看litble巨巨关于第一类斯特林数的总结 设\(f(i,j)\)为\(i\)个数的排列中有\(j\)个数是前缀最大数的方案数,枚举最小的数的位置,则有递推式\(f(i,j)=f(i- ...

  2. Ruby测试小代码[计算50以内的素数]

    算法思想 判断某一个数,能不能被比他平方根小的素数整除. 首先看看代码 $arr = [] $arr[0] = 2 def add_prime(n) 3.step(n,2){|num| $arr &l ...

  3. 如何用js获取浏览器URL中查询字符串的参数

    首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...

  4. Jasper_crosstab_headerPosition_columngroup header position config - (headerPosition="Stretch")

    i.e <columnGroup name="column11" height="20" totalPosition="Start" ...

  5. shell脚本由基础变量及特殊变量($@、$*、$#等)到实战。

    一.shell脚本建立: shell脚本通常是在编辑器(如vi/vim)中编写,也可以在命令行中直接执行: 1.脚本开头:     规范的脚本第一行需要指出有哪个程序(解释器)来执行脚本中的内容,在L ...

  6. 20 个案例教你在 Java 8 中如何处理日期和时间?

    前言 前面一篇文章写了<SimpleDateFormat 如何安全的使用?>, 里面介绍了 SimpleDateFormat 如何处理日期/时间,以及如何保证线程安全,及其介绍了在 Jav ...

  7. P1042 乒乓球

    题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役.华华就是其中一位,他退役 ...

  8. CentOS远程监控

    近日,因工作需要,学习了CentOS远程监控的水平有限,多指教. 远程访问CentOS,包括三种方式ssh,telnet,vnc. 本例涉及的是以vnc远程访问CentOS.指令在root下操作.注意 ...

  9. 第八章 设计用户界面 之 给Web程序应用用户界面设计

    1. 概述 本章内容包括: 使用CSS创建和应用样式.使用HTML构架用户界面的层次 以及 根据需求实现动态页面内容. 2. 主要内容 2.1 使用CSS创建和应用样式 Razor程序的模板是_Lay ...

  10. ubuntu 下 docker安装

    1移除以前安装docker sudo apt-get remove docker docker-engine docker-ce docker.io 2 安装包以允许apt通过HTTPS使用存储库 s ...