package mongoDB;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException; /**
* java
* mongodb的数据插入、读取、更新、删除
*/
public class test{
private static Mongo m = null;
private static DB db = null; //数据集合名称
private static final String COLLECTION_NAME = "mcpang"; /*
* 测试java处理mongodb的增、删、改、查操作
*/
public static void main(String[] args) {
//获取数据库连接
startMongoDBConn();
//保存数据
createColData();
//读取数据
readColData();
//更新数据
updateColData();
//读取数据
readColData();
//删除数据
deleteColData();
//读取数据
readColData();
//删除数据集
db.getCollection(COLLECTION_NAME).drop();
//关闭数据库连接
stopMondoDBConn(); } /**
* 数据插入
* 测试数据:
* 【name:小李、age:30、address:北京】
* 【name:小张、age:25、address:天津】
* @return
*/
private static void createColData(){
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
System.out.println("向数据集中插入数据开始:");
List<DBObject> dbList = new ArrayList<DBObject>();
BasicDBObject doc1 = new BasicDBObject();
doc1.put("name", "小李");
doc1.put("age", 30);
doc1.put("address", "北京");
dbList.add(doc1); BasicDBObject doc2 = new BasicDBObject();
doc2.put("name", "小张");
doc2.put("age", 25);
doc2.put("address", "天津");
dbList.add(doc2); dbCol.insert(dbList);
System.out.println("向数据集中插入数据完成!");
System.out.println("------------------------------");
} /**
* 数据读取
*/
private static void readColData(){
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
DBCursor ret = dbCol.find();
System.out.println("从数据集中读取数据:");
while(ret.hasNext()){
BasicDBObject bdbObj = (BasicDBObject) ret.next();
if(bdbObj != null){
System.out.println("name:"+bdbObj.getString("name"));
System.out.println("age:"+bdbObj.getInt("age"));
System.out.println("address:"+bdbObj.getString("address"));
}
}
} /**
* 数据更新
* update(q, o, upsert, multi)
* update(q, o, upsert, multi, concern)
* update(arg0, arg1, arg2, arg3, arg4, arg5)
* updateMulti(q, o)
*/
private static void updateColData(){
System.out.println("------------------------------");
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
DBCursor ret = dbCol.find();
BasicDBObject doc = new BasicDBObject();
BasicDBObject res = new BasicDBObject();
res.put("age", 40);
System.out.println("将数据集中的所有文档的age修改成40!");
doc.put("$set", res);
dbCol.update(new BasicDBObject(),doc,false,true);
System.out.println("更新数据完成!");
System.out.println("------------------------------");
} /**
* 数据删除
*/
private static void deleteColData(){
System.out.println("------------------------------");
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
System.out.println("删除【小李】!");
BasicDBObject doc = new BasicDBObject();
doc.put("name", "小李");
dbCol.remove(doc);
System.out.println("------------------------------");
} /**
* 关闭mongodb数据库连接
*/
private static void stopMondoDBConn(){
if (null != m) {
if (null != db) {
// 结束Mongo数据库的事务请求
try {
db.requestDone();
} catch(Exception e) {
e.printStackTrace();
}
}
try
{
m.close();
} catch(Exception e) {
e.printStackTrace();
}
m = null;
db = null;
}
} /**
* 获取mongodb数据库连接
*/
private static void startMongoDBConn(){
try {
//Mongo(p1, p2):p1=>IP地址 p2=>端口
m = new Mongo("127.0.0.1", 27017);
//根据mongodb数据库的名称获取mongodb对象
db = m.getDB("yyl");
//校验用户密码是否正确
if (!db.authenticate("yyl", "yyl123".toCharArray())){
System.out.println("连接MongoDB数据库,校验失败!");
}else{
System.out.println("连接MongoDB数据库,校验成功!");
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
}

mongodb实现简单的增删改查的更多相关文章

  1. 使用Mongoose类库实现简单的增删改查

    使用Mongoose类库实现简单的增删改查 Mongoose是在nodejs环境中对MongoDB数据库操作的封装,一种对象模型工具,可以将数据库中的数据转换为javascript对象供我们使用. M ...

  2. salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)

    此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...

  3. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  4. 通过JDBC进行简单的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  5. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  6. 初试KONCKOUT+WEBAPI简单实现增删改查

    初试KONCKOUT+WEBAPI简单实现增删改查 前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc4 webapi来实现一个简单增删改查操作.Kn ...

  7. MVC3.0+knockout.js+Ajax 实现简单的增删改查

    MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...

  8. SpringMVC之简单的增删改查示例(SSM整合)

    本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...

  9. python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作

    1.通过 pip 安装 pymysql 进入 cmd  输入  pip install pymysql   回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...

随机推荐

  1. STM8S 串口应用 UART2 STM8S105

    //少说话.多做事,下面是我验证过没有问题的串口发送接受数据 //使用MCU stm8s105c6 UART2 //初始化时调用: GPIO_DeInit(GPIOD); /* Configure P ...

  2. 自己定义android 4.0以上的对话框风格

    做个笔记.这里是Dialog的风格,假设是用AlertDialog创建的,不能直接用.在styles.xml的写法: <style name="DialogWindowTitle&qu ...

  3. windows系统port监听

    通常情况下.假设想发现全部已经使用的和正在监听的port,我们能够使用netstat命令. netstat并不是一个port扫描工具.假设你想扫描计算机开放了哪些port的话.建议使用本文介绍的方法. ...

  4. Web.xml配置具体解释之context-param

    转自:http://blog.csdn.net/liaoxiaohua1981/article/details/6759206 格式定义: [html] view plaincopy <cont ...

  5. java OOP及相关基础知识汇总(转)

    OOP 对象有三个要素 behavior 接口是怎样的,有什么方法/field可以用? state 调用方法的时候,对象会有什么反应? 只有通过调用方法才能改变一个对象的state identity ...

  6. Java的一些基础小知识之JVM与GC (转)

    一.JVM是什么 Java虚拟机(英语:Java Virtual Machine,缩写为JVM),又名爪哇虚拟器,一种能够运行Java bytecode的虚拟机,以堆栈结构机器来进行实做.最早由太阳微 ...

  7. 推动Common Lisp的实际应用

    推动Common Lisp的实际应用 推动Common Lisp的实际应用

  8. 由一道淘宝面试题到False sharing问题

    今天在看淘宝之前的一道面试题目,内容是 在高性能服务器的代码中经常会看到类似这样的代码: typedef union { erts_smp_rwmtx_t rwmtx; byte cache_line ...

  9. qt 获取windows 的消息(通过MFC的DLL的透明窗体转发消息)good

    qt 给win32 发送消息很简单,但是要获取windows 消息却十分复杂,最后想了一个不是很完美 但是也是以现在本人能力所能实现的唯一途径了,基本原理是 利用vc编写一个mfc 的dll ,这个d ...

  10. ThinkPHP框架模型连贯操作(八)

    原文:ThinkPHP框架模型连贯操作(八) Thinkphp的连贯操作使用起来也是很灵活: *可能这里有的mysql函数没全部罗列出来,大家可以举一反三,形式雷同 一.常用连贯操作 1.where ...