前言 :mongoDb 是一种比较常用的非关系数据库,文档数据库, 格式为json ,redis 有五种格式。

1. 项目中要使用,这里简单做个示例。首先是连接mongoDB,用的最多的robomongodb,下载,安装, 连接。

连接成功结构是这样的。

2.第二个maven引入jar包。我用的是springboot,里面直接有

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

3,mongoDB  java api 类似redis的  jedis 别人写好的工具类, 拿来用就是。

package com.ycmedia.utils;

import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.bson.types.ObjectId; import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException; @SuppressWarnings("deprecation")
public final class MongoDbUtil { private static final String HOST = "180.97.75.185:38017"; private static final String dbName = "yc"; private static Mongo mongo; private static DB db; static {
try {
mongo = new Mongo(HOST);
db = mongo.getDB(dbName);
// db.authenticate(username, passwd)
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
} private MongoDbUtil() {
} /**
* 添加操作
*
* @param map
* @param collectionName
*/
public static void add(Map<String, Object> map, String collectionName) {
DBObject dbObject = new BasicDBObject(map);
getCollection(collectionName).insert(dbObject);
} /**
* 添加操作
*
* @param list
* @param collectionName
*/
public static void add(List<Map<String, Object>> list, String collectionName) {
for (Map<String, Object> map : list) {
add(map, collectionName);
}
} /**
* 删除操作
*
* @param map
* @param collectionName
*/
public static void delete(Map<String, Object> map, String collectionName) {
DBObject dbObject = new BasicDBObject(map);
getCollection(collectionName).remove(dbObject);
} /**
* 删除操作,根据主键
*
* @param id
* @param collectionName
*/
public static void delete(String id, String collectionName) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("_id", new ObjectId(id));
delete(map, collectionName);
} /**
* 删除全部
*
* @param collectionName
*/
public static void deleteAll(String collectionName) {
getCollection(collectionName).drop();
} /**
* 修改操作
* 会用一个新文档替换现有文档,文档key结构会发生改变
* 比如原文档{"_id":"123","name":"zhangsan","age":12}当根据_id修改age
* value为{"age":12}新建的文档name值会没有,结构发生了改变
*
* @param whereMap
* @param valueMap
* @param collectionName
*/
public static void update(Map<String, Object> whereMap, Map<String, Object> valueMap, String collectionName) {
executeUpdate(collectionName, whereMap, valueMap, new UpdateCallback(){
public DBObject doCallback(DBObject valueDBObject) {
return valueDBObject;
}
});
} /**
* 修改操作,使用$set修改器
* 用来指定一个键值,如果键不存在,则自动创建,会更新原来文档, 不会生成新的, 结构不会发生改变
*
* @param whereMap
* @param valueMap
* @param collectionName
*/
public static void updateSet(Map<String, Object> whereMap, Map<String, Object> valueMap, String collectionName) {
executeUpdate(collectionName, whereMap, valueMap, new UpdateCallback(){
public DBObject doCallback(DBObject valueDBObject) {
return new BasicDBObject("$set", valueDBObject);
}
});
} /**
* 修改操作,使用$inc修改器
* 修改器键的值必须为数字
* 如果键存在增加或减少键的值, 如果不存在创建键
*
* @param whereMap
* @param valueMap
* @param collectionName
*/
public static void updateInc(Map<String, Object> whereMap, Map<String, Integer> valueMap, String collectionName) {
executeUpdate(collectionName, whereMap, valueMap, new UpdateCallback(){
public DBObject doCallback(DBObject valueDBObject) {
return new BasicDBObject("$inc", valueDBObject);
}
});
} /**
* 修改
*
* @param collectionName
* @param whereMap
* @param valueMap
* @param updateCallback
*/
private static void executeUpdate(String collectionName, Map whereMap, Map valueMap, UpdateCallback updateCallback) {
DBObject whereDBObject = new BasicDBObject(whereMap);
DBObject valueDBObject = new BasicDBObject(valueMap);
valueDBObject = updateCallback.doCallback(valueDBObject);
getCollection(collectionName).update(whereDBObject, valueDBObject);
} interface UpdateCallback { DBObject doCallback(DBObject valueDBObject);
} /**
* 获取集合(表)
*
* @param collectionName
* @return
*/
public static DBCollection getCollection(String collectionName) {
return db.getCollection(collectionName);
} public static void main(String[] args) {
DBCollection collection = getCollection("url");
BasicDBObject queryObject = new BasicDBObject("urlMd5","bfa89e563d9509fbc5c6503dd50faf2e"); DBObject obj = collection.findOne(queryObject); System.out.println(obj);
}
}

4.查询

    public static void main(String[] args) {
DBCollection collection = getCollection("url");
BasicDBObject queryObject = new BasicDBObject("urlMd5","bfa89e563d9509fbc5c6503dd50faf2e"); DBObject obj = collection.findOne(queryObject); System.out.println(obj);
}

mongoDb +Java+springboot的更多相关文章

  1. java~springboot~目录索引

    回到占占推荐博客索引 最近写了不过关于java,spring,微服务的相关文章,今天把它整理一下,方便大家学习与参考. java~springboot~目录索引 Java~关于开发工具和包包 Java ...

  2. MongoDB,SpringBoot,SpringDataMongoDB

    MongoDB,SpringBoot,SpringDataMongoDB 双刃剑MongoDB的学习和避坑 MongoDB 是一把双刃剑,它对数据结构的要求并不高.数据通过key-value的形式存储 ...

  3. MongoDB Java Driver操作指南

    MongoDB为Java提供了非常丰富的API操作,相比关系型数据库,这种NoSQL本身的数据也有点面向对象的意思,所以对于Java来说,Mongo的数据结构更加友好. MongoDB在今年做了一次重 ...

  4. Mongodb Java Driver 参数配置解析

    要正确使用Mongodb Java Driver,MongoClientOptions参数配置对数据库访问的并发性能影响极大. connectionsPerHost:与目标数据库能够建立的最大conn ...

  5. BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能

    http://code.google.com/p/bugumongo/ 简介 BuguMongo是一个MongoDB Java开发框架,它的主要功能包括: 基于注解的对象-文档映射(Object-Do ...

  6. 数据库.MongoDB.Java样例

    1.先在MongoDB官网下载Java驱动包 MongoDB Java Driver: http://mongodb.github.io/mongo-java-driver/ JAR包下载列表 htt ...

  7. MongoDB Java

    MongoDB Java 环境配置 在Java程序中如果要使用MongoDB,你需要确保已经安装了Java环境及MongoDB JDBC 驱动. 你可以参考本站的Java教程来安装Java程序.现在让 ...

  8. java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况

    java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况 邮件短信微服务 spring boot 微服务 接收json格式参数 验证参数合 ...

  9. 【Other】最近在研究的, Java/Springboot/RPC/JPA等

    我的Springboot框架,欢迎关注: https://github.com/junneyang/common-web-starter Dubbo-大波-服务化框架 dubbo_百度搜索 Dubbo ...

随机推荐

  1. 显示scrollbar

    修改CSS overflow的值 overflow: 参考MDN 例子: overflow: auto or scroll

  2. 服务器上搭建spark开发环境

    1.安装相应的软件 (1)安装jdk 下载地址:http://www.Oracle.com/technetwork/java/javase/downloads/index.html (2)安装scal ...

  3. opencv 常用函数介绍

    ××××××××××××××××××××××××××××××××××××××× CvScalar imgmean,imgstd; double imgmax,imgmin; cvAvgSdv(img, ...

  4. meta标签常用属性整理

    在segmentfault看到这篇文章,觉得整理的很详细,所以转载过来和大家分享一下. 原文地址:http://segmentfault.com/blog/ciaocc/119000000240791 ...

  5. 简单的html5 File base64 图片上传

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. wdcp对default站点开启apache url重写功能

    网站开启对default网站的重写功能

  7. 用Apache实现一个ip虚拟多个web站点

    如何用Apache实现一个ip虚拟多个web站点? 首先添加虚拟的服务器名 <virtualhost www.xxx.com:80="">DocumentRoot d: ...

  8. 常用Firefox扩展

    最近思维混乱,无心做事,故整理下东西.(PS:有些是firefox自带的.) 1.标签页管理器 2.1.41 用途:在新标签页打开书签.历史.地址.搜索. 主页:http://www.firefox. ...

  9. 一个关于导出excel模板的实例

    1 首先jsp页面 点击模板下载,会自动下载模板excel,效果如下 让我们看源码: 1 jsp页面 <div class="tab-pane" id="profi ...

  10. iOS:KVO/KVC 的概述与使用

    iOS:KVO/KVC 的概述与使用       KVO   APP开发技术QQ群:347072638 一,概述 KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性 ...