同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。

mongodb java 开源_MongoDB Java环境下的开发相关推荐

  1. 基于Java技术的Web环境下分布式数据库互操作性的实现

                作者:李炽明 莫倩 徐明 1 JDBC工作原理 JDBC(Java Database Connectivity)是1个Sun公司注册了的商标,代表用来执行SQL语句的Java语 ...

  2. windows环境下Eclipse开发MapReduce程序遇到的四个问题及解决办法

    按此文章<Hadoop集群(第7期)_Eclipse开发环境设置>进行MapReduce开发环境搭建的过程中遇到一些问题,饶了一些弯路,解决办法记录在此: 文档目的: 记录windows环 ...

  3. STM32在ArduinoIDE环境下的开发(不同的下载方式,不同的BootLoader方式,无需BootLoader方式)

    STM32在ArduinoIDE环境下的开发 1.前言 网上有不少介绍Arduino下开发STM32的帖子,但因为时间发展关系,核心库的开发和第三方库的发展有好几种,另外采用的下载方式也各不相同,因此 ...

  4. android studio3.12,Android Studio V3.12环境下TV开发教程(六)提供卡片视图

    Android Studio V3.12环境下TV开发教程 文章源自:光谷佳武 https://blog.csdn.net/jiawuhan/article/details/80619656 在上一课 ...

  5. WSL+VSCODE体验UBUNTU环境下的开发

    首先安装 WSL,我这里选择的是 ubuntu18.04 这个应用. 切换 WSL 的默认用户为 root 用户 切换成 root 用户主要是避免后续开发中遇到权限问题比较麻烦,直接默认 root 解 ...

  6. Linux环境下ARM开发工具TrueSTUDIO初体验

    Linux环境下ARM开发工具TrueSTUDIO初体验 TrueSTUDIO是Atollic公司出品的ARM开发工具,号称"The best FREE C/C++ IDE for ARM® ...

  7. Android电视切换回放,Android Studio V3.12环境下TV开发教程(五)建立电视回放应用...

    Android Studio V3.12环境下TV开发教程 文章源自:光谷佳武 https://blog.csdn.net/jiawuhan/article/details/80619382 浏览和播 ...

  8. aix java home_在AIX环境下安装IBM JDK 1.6的教程

    因为需要在AIX 6.1 安装并部署应用在Webloigc 10.3,而改Weblogic版本需要JDK 1.6的运行环境,所以需要自行安装JDK 1.6 一.检查系统 1 # oslevel 2 6 ...

  9. java windows 下载_Windows环境下JDK的下载与安装

    1.首先检查一下本机是否有安装java.按win+R,在弹出窗口中输入cmd,按回车打开控制台   在控制台中输入 java 并按回车,如果显示"'java' 不是内部或外部命令,也不是可运 ...

最新文章

  1. 计算机书籍-Python机器学习算法大全
  2. ArcGIS 坐标系统文件
  3. python斑点检测
  4. linux进程--进程调度算法(十三)
  5. python代码变成运行程序_用Python脚本转换成windows的可执行程序
  6. jQuery使用(十二):工具方法之type()之类型判断
  7. nasm汇编:段的申明、$$、$
  8. java jar包示例_Java包getSpecificationVendor()方法和示例
  9. ISDN与PSTN的区别是什么?
  10. 计算机应用的问答题,计算机应用技术问答题(一)
  11. wireshark 过滤法则
  12. java 对象回收_如何处理JAVA大量对象回收问题?
  13. CoreOS和Docker入门
  14. VB ListView控件各种操作详解
  15. Manacher (马拉车算法)
  16. Python开发高频英语单词700+,熟悉后英文障碍又少了
  17. 80C51单片机:3.数码管显示、封装与消隐
  18. python实现向qq邮箱发送邮件
  19. 这就是你日日夜夜想要的docker!!!---------Harbor私有仓库
  20. 每平每屋模型组件采集策略研究

热门文章

  1. 华为笔记本怎么激活windows_取代Windows?最美国产操作系统诞生,华为笔记本电脑已搭载...
  2. SSL与TLS的区别
  3. 计算机应用基础模拟试题一,计算机应用基础模拟试题1
  4. MySQL 优化上来就分库分表?面试官:根本不懂底层原理!
  5. 每日一皮:简历上写着熟练掌握…实际往往是这样的...
  6. 来自95后的天池中间件大赛总结
  7. java solar_java中的内部类总结
  8. pycharm 转大写
  9. ImportError: libopenblas.so.0: cannot open shared object file
  10. yolov3 onnx nms