MongoDB Java环境下的开发

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

打开myeclipse,创建一个java project。

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

然后在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。

时间: 2024-10-21 17:59:02

MongoDB Java环境下的开发的相关文章

JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误

问题一:出现控制台坏的响应错误一Bad request 控制台出现错误如下: Bad Request request: http://hostIP:8983/solr/update?wt=javabin&version=1 解决方法: 出现以上错误的原因是,solr服务器上配置的Field和javabean提交的Field不能对应, 导致solr服务器找不到域,拒绝访问. 打开SOLR_HOME下的conf文件夹找到schema.xml文件,在其中添加对应的域. 例如以下代码添加了:title,

Mac环境下cocos2d-x开发环境完全指南

本教程来自CSDN博客:http://blog.csdn.net/zhaokaiqiang1992 转载请说明! 本教程主要指导新手在Mac环境下cocos2d-x开发环境搭建. 1.cocos2d-x下载 下载网站:http://cn.cocos2d-x.org/download/ 下载3.x版本后,解压即可 2.必备软件安装及环境配置 进行cocos2d-x开发,必须安装的软件有 Java SDK(Mac自带) Ant(安装可以参考这个教程:http://www.cnblogs.com/il

NLPIR分词工具的使用(java环境下)

一.NLPIR是什么? NLPIR(汉语分词系统)由中科大张华平博士团队开发,主要功能包括:中文分词,词性标注,命名实体识别,用户词典功能,详情见官网:http://ictclas.nlpir.org/. 二.java环境下的使用: 主要参考了如下资料:http://www.360doc.com/content/14/0926/15/19424404_412519063.shtml 下面是个人的使用方法,仅供参考 1.下载NLPIR工具包,链接如下:http://ictclas.nlpir.or

Java环境下shiro的测试-认证与授权

Java环境下shiro的测试 1.导入依赖的核心jar包 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.3.2</version> </dependency> 2.认证程序 2.1 构建users配置文件 xxx.ini doGetAuthenticationInf

Mac环境下.Net开发

Mac环境下.Net开发 Mono是一个由Novell公司(由Xamarin发起),并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程.它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET.能够使得开发人员在Linux用C#开发程序.)主持的项目.该项目的目标是创建一系列符合标准ECMA (Ecma-334和Ecma-335)的.Net 工具, 包括C #编译器和共同语言(CL 即 Common Lang

这是关于FastJson的一个使用Demo,在Java环境下验证的

1 public class User { 2 private int id; 3 private String name; 4 public int getId() { 5 return id; 6 } 7 public void setId(int id) { 8 this.id = id; 9 } 10 public String getName() { 11 return name; 12 } 13 public void setName(String name) { 14 this.n

AndroidStudio环境下ndk开发

AndroidStudio环境下ndk开发的基本步骤是,写本地方法生成头文件,用c/c++实现本地方法,配置android.mk文件生成so文件.具体步骤如下 1.创建android工程:MyJni. 2.写本地方法,并编译成class文件,在\app\build\intermediates\classes\debug中找. public class MainActivity extends AppCompatActivity { static { System.loadLibrary("Jni

Java 环境下使用 AES 加密的特殊问题处理

在 Java 环境下使用 AES 加密,在密钥长度和字节填充方面有一些比较特殊的处理. 1. 密钥长度问题 默认 Java 中仅支持 128 位密钥,当使用 256 位密钥的时候,会报告密钥长度错误 Invalid AES key length 你需要下载一个支持更长密钥的包.这个包叫做 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6,可以从这里下载,下载地址:http://www.

Windows PHP 环境下 Redis开发环境搭建

1.redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hashs(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redi