mongodb java 开源_MongoDB Java环境下的开发

同Mysql、Oracle一样,首先要下载驱动包,下载地址。

打开myeclipse,创建一个java project。

在项目下建立一个lib文件夹,将下载的驱动包放到lib下并build到path下:

fa553b15a7752edfd1944b5807463a6f.png

然后在src下建一个db.properties文件

host=127.0.0.1

port=27017

dbname=test

新建一个util包,包下新建一个类DBUtil

package util;

import java.io.IOException;

import java.net.UnknownHostException;

import java.util.Properties;

import com.mongodb.DBCollection;

import com.mongodb.DBObject;

import com.mongodb.MongoClient;

import com.mongodb.util.JSON;

public class DBUtil {

private static Properties p=new Properties();

private static String host;

private static int port;

private static String dbname;

static{

try {

p.load(DBUtil.class.getClassLoader().getResourceAsStream("db.properties"));

host=(String) p.get("host");

port=Integer.valueOf((String) p.get("port"));

dbname=(String) p.get("dbname");

} catch (IOException e) {

e.printStackTrace();

}

}

public static DBCollection getDBCollection(String tablename){

try {

return new MongoClient(host,port).getDB(dbname).getCollection(tablename);

} catch (UnknownHostException e) {

e.printStackTrace();

}

return null;

}

public static DBObject getDBCursorFromJson(String jsondata){

return (DBObject) JSON.parse(jsondata);

}

public static String getStringDataFromDBObject(DBObject entry){

return JSON.serialize(entry);

}

}

下面测试简单的CRUD

package testmongodb;

import org.bson.types.ObjectId;

import util.DBUtil;

import com.mongodb.BasicDBObject;

import com.mongodb.DBCollection;

import com.mongodb.DBCursor;

import com.mongodb.DBObject;

public class Test {

@org.junit.Test

public void testAdd(){

DBCollection collection=DBUtil.getDBCollection("testtable");

DBObject user=new BasicDBObject();

user.put("name", "zhangsan");

user.put("age", 11);

collection.insert(user).getN();

}

@org.junit.Test

public void testfind(){

//mongoDB不支持联合查询、子查询,这需要我们自己在程序中完成。将查询的结果集在Java查询中进行需要的过滤即可。

DBCollection collection=DBUtil.getDBCollection("testtable");

DBObject user=new BasicDBObject();

user.put("name", "zhangsan");

user.put("age", "11");

//全部查询

//DBCursor cursor=collection.find();

//条件查询

DBCursor cursor=collection.find(new BasicDBObject("age", new BasicDBObject("$lte", 105)));

while (cursor.hasNext()) {

System.out.println(cursor.next());

}

}

@org.junit.Test

public void testDelete(){

DBCollection collection=DBUtil.getDBCollection("testtable");

//根据id删除

collection.remove(new BasicDBObject("_id", new ObjectId("5590e57b7d51ad2ef1b69a93")));

//条件删除

collection.remove(new BasicDBObject("age", new BasicDBObject("$gte", 105)));

}

@org.junit.Test

public void testUpdate(){

DBCollection collection=DBUtil.getDBCollection("testtable");

//根据id修改

collection.update(new BasicDBObject("_id", new ObjectId("5590e57b7d51ad2ef1b69a93")), new BasicDBObject("age", 99));

//条件修改

collection.update(new BasicDBObject("age", new BasicDBObject("$gte", 105)), new BasicDBObject("age", 11));

}

}

关于聚合可以看这篇文章,文章地址

关于索引可以看这篇文章,文章地址

最后多嘴一句,MongoDB使用面向对方的方式处理数据库,让开发者不用再去关心sql问题,但也同样限制了他所能处理的业务,对于复杂的数据分析或者关系比较复杂的erp等,不太适合。不过有一种折中的办法就是对于要做复杂分析的表依然使用传统的数据库,而对于简单的则用MongoDB。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值