前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB Java环境下的开发 原

MongoDB Java环境下的开发 原

作者头像
尚浩宇
发布2018-08-17 09:44:20
5690
发布2018-08-17 09:44:20
举报
文章被收录于专栏:杂烩

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

        打开myeclipse,创建一个java project。

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

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

代码语言:javascript
复制
host=127.0.0.1
port=27017
dbname=test

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

代码语言:javascript
复制
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

代码语言:javascript
复制
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。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015/06/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档