①范例:连接数据库

package cn.mldn.demo;

import com.mongodb.DB;

import com.mongodb.MongoClient;

public class MongoDemoA {

public static void main(String[] args) throws Exception {

// 设置要连接的数据库的主机名称与端口号

MongoClient client = new MongoClient("localhost", 27001);

MongoClient内部实现了一个连接池,默认初始化10个连接,MongoClient对象是线程安全的,因此可以只创建一个,在多线程环境下安全使用。

另外要注意,close方法将关闭当前所有活跃的连接,所以应该在确定不再使用MongoDB的时候才应该关闭。

DB db = client.getDB("mldn");  // 连接数据库

1:数据库名区分大小写,另外如果数据库不存在,不会报错,而是新建一个

2: DB对象代表了和数据库的一个连接。默认情况下,当执行完数据库的查询或者更新操作后,连接将自动回到连接池中。不需要我们手动调用代码放回池中。

// 进行数据库的用户名与密码验证

if (db.authenticate("hello", "happy".toCharArray())) {

for (String name : db.getCollectionNames()) {

System.out.println("集合名字:" + name);

}

}

client.close();     // 关闭数据库连接

}

}

②范例:保存数据

package cn.mldn.demo;

import com.mongodb.BasicDBObject;

import com.mongodb.DB;

import com.mongodb.DBCollection;

import com.mongodb.MongoClient;

public class MongoDemoB {

public static void main(String[] args) throws Exception {

// 设置要连接的数据库的主机名称与端口号

MongoClient client = new MongoClient("localhost", 27001);

DB db = client.getDB("mldn");  // 连接数据库

// 进行数据库的用户名与密码验证

if (db.authenticate("hello", "happy".toCharArray())) {

DBCollection col = db.getCollection("deptcol") ;    // 要操作的集合名字

for (int x = 0 ; x < 100 ; x ++) {    // 循环保存数据

BasicDBObject obj = new BasicDBObject() ;

obj.append("deptno" , 1000 + x) ;   // 设置部门编号信息

obj.append("dname" , "技术部 - " + x) ;

obj.append("loc" , "北京 - " + x) ;

col.insert(obj) ;   // 保存数据

}

}

client.close();     // 关闭数据库连接

}

}

新增

1:第一种方式,示例:

BasicDBObjectdata1 = new BasicDBObject();

data1.put("userId", "u1234");

data1.put("name", "name123");

或者data1.append("userId", "u1234").append("name", "name123");

users.insert(data1);

//或者users.save(data1);

2:第二种方式,示例:

BasicDBObjectBuilder data1=BasicDBObjectBuilder.start().add("userId","u234").add("name","name234");

users.insert(data1.get());

3:第三种方式,示例:

Map<String, Object> data1 = new HashMap<String, Object>();

data1.put("userId","u345");

users.insert(new BasicDBObject(data1));

4:第四种方式,示例:

String json = "{'userId': 'u456','name' : 'name456'}";

DBObject data1 = (DBObject)JSON.parse(json);

users.insert(data1);

③范例:数据读取

package cn.mldn.demo;

import com.mongodb.*;

public class MongoDemoC {

public static void main(String[] args) throws Exception {

// 设置要连接的数据库的主机名称与端口号

MongoClient client = new MongoClient("localhost", 27001);

DB db = client.getDB("mldn");  // 连接数据库

// 进行数据库的用户名与密码验证

if (db.authenticate("hello", "happy".toCharArray())) {

DBCollection col = db.getCollection("deptcol") ;    // 要操作的集合名字

DBCursor cursor = col.find() ;  // 得到全部内容

while (cursor.hasNext()) {

DBObject obj = cursor.next() ;  // 得到每一个内容

System.out.println("部门编号:" + obj.get("deptno") + ",名称:" + obj.get("dname"));

}

}

client.close();     // 关闭数据库连接

}

}

④范例:使用分页处理

package cn.mldn.demo;

import com.mongodb.*;

public class MongoDemoD {

public static void main(String[] args) throws Exception {

// 设置要连接的数据库的主机名称与端口号

MongoClient client = new MongoClient("localhost", 27001);

DB db = client.getDB("mldn");  // 连接数据库

// 进行数据库的用户名与密码验证

if (db.authenticate("hello", "happy".toCharArray())) {

DBCollection col = db.getCollection("deptcol") ;    // 要操作的集合名字

DBCursor cursor = col.find().skip(0).limit(10) ;  // 得到全部内容

while (cursor.hasNext()) {

DBObject obj = cursor.next() ;  // 得到每一个内容

System.out.println("部门编号:" + obj.get("deptno") + ",名称:" + obj.get("dname"));

}

}

client.close();     // 关闭数据库连接

}

}

⑤范例:设置查询条件

package cn.mldn.demo;

import com.mongodb.*;

public class MongoDemoE {

public static void main(String[] args) throws Exception {

// 设置要连接的数据库的主机名称与端口号

MongoClient client = new MongoClient("localhost", 27001);

DB db = client.getDB("mldn");  // 连接数据库

// 进行数据库的用户名与密码验证

if (db.authenticate("hello", "happy".toCharArray())) {

DBCollection col = db.getCollection("deptcol") ;    // 要操作的集合名字

DBObject cond = new BasicDBObject() ;   // 准备设置查询过滤条件

// 设置deptno的数据范围在1000 ~ 1020之间

cond.put("deptno",new BasicDBObject("$gte",1000).append("$lte",1020)) ;

// 设置之前所定义的查询条件

DBCursor cursor = col.find(cond).skip(0).limit(50) ;  // 得到全部内容

while (cursor.hasNext()) {

DBObject obj = cursor.next() ;  // 得到每一个内容

System.out.println("部门编号:" + obj.get("deptno") + ",名称:" + obj.get("dname"));

}

}

client.close();     // 关闭数据库连接

}

}

⑥范例:设置范围查询—— in

package cn.mldn.demo;

import com.mongodb.*;

public class MongoDemoF {

public static void main(String[] args) throws Exception {

// 设置要连接的数据库的主机名称与端口号

MongoClient client = new MongoClient("localhost", 27001);

DB db = client.getDB("mldn");  // 连接数据库

// 进行数据库的用户名与密码验证

if (db.authenticate("hello", "happy".toCharArray())) {

DBCollection col = db.getCollection("deptcol");    // 要操作的集合名字

DBObject cond = new BasicDBObject();   // 准备设置查询过滤条件

// 设置deptno的数据范围在1000 ~ 1020之间

cond.put("deptno", new BasicDBObject("$in", new int[]{1001, 1003, 1005}));

// 设置之前所定义的查询条件

DBCursor cursor = col.find(cond).skip(0).limit(50);  // 得到全部内容

while (cursor.hasNext()) {

DBObject obj = cursor.next();  // 得到每一个内容

System.out.println("部门编号:" + obj.get("deptno") + ",名称:" + obj.get("dname"));

}

}

client.close();     // 关闭数据库连接

}

}

⑦范例:执行模糊查询

package cn.mldn.demo;

import com.mongodb.*;

import java.util.regex.Pattern;

public class MongoDemoG {

public static void main(String[] args) throws Exception {

// 设置要连接的数据库的主机名称与端口号

MongoClient client = new MongoClient("localhost", 27001);

DB db = client.getDB("mldn");  // 连接数据库

// 进行数据库的用户名与密码验证

if (db.authenticate("hello", "happy".toCharArray())) {

DBCollection col = db.getCollection("deptcol");    // 要操作的集合名字

Pattern pattern = Pattern.compile("5") ;    // 设置过滤条件

DBObject cond = new BasicDBObject();   // 准备设置查询过滤条件

// 设置deptno的数据范围在1000 ~ 1020之间

cond.put("dname", new BasicDBObject("$regex", pattern));

// 设置之前所定义的查询条件

DBCursor cursor = col.find(cond).skip(0).limit(50);  // 得到全部内容

while (cursor.hasNext()) {

DBObject obj = cursor.next();  // 得到每一个内容

System.out.println("部门编号:" + obj.get("deptno") + ",名称:" + obj.get("dname"));

}

}

client.close();     // 关闭数据库连接

}

}

⑧范例:数据修改

package cn.mldn.demo;

import com.mongodb.*;

import java.util.regex.Pattern;

public class MongoDemoH {

public static void main(String[] args) throws Exception {

// 设置要连接的数据库的主机名称与端口号

MongoClient client = new MongoClient("localhost", 27001);

DB db = client.getDB("mldn");  // 连接数据库

// 进行数据库的用户名与密码验证

if (db.authenticate("hello", "happy".toCharArray())) {

DBCollection col = db.getCollection("deptcol");    // 要操作的集合名字

DBObject condA = new BasicDBObject();   // 准备设置要修改的过滤条件

condA.put("deptno" , 1000) ;    // 设置修改的内容

DBObject condB = new BasicDBObject() ;  // 修改器的设置

condB.put("$set", new BasicDBObject("dname", "修改后的部门名称")) ;

WriteResult result = col.update(condA, condB) ;

System.out.println(result.getN());

}

client.close();     // 关闭数据库连接

}

}

DBObject condition = new BasicDBObject("userId","u234");

users.update(condition, new BasicDBObject("userId","cc").append("name","cc"));

当然也可以使用修改器

users.update(condition, new BasicDBObject("$set",new

BasicDBObject("name","ccNew")));

⑨范例:多行数据的修改

package cn.mldn.demo;

import com.mongodb.*;

public class MongoDemoI {

public static void main(String[] args) throws Exception {

// 设置要连接的数据库的主机名称与端口号

MongoClient client = new MongoClient("localhost", 27001);

DB db = client.getDB("mldn");  // 连接数据库

// 进行数据库的用户名与密码验证

if (db.authenticate("hello", "happy".toCharArray())) {

DBCollection col = db.getCollection("deptcol");    // 要操作的集合名字

DBObject condA = new BasicDBObject();   // 准备设置要修改的过滤条件

condA.put("deptno",new BasicDBObject("$gte",1000).append("$lte",1020)) ;

DBObject condB = new BasicDBObject() ;  // 修改器的设置

condB.put("$set", new BasicDBObject("dname", "修改后的部门名称")) ;

WriteResult result = col.updateMulti(condA, condB) ;

System.out.println(result.getN());

}

client.close();     // 关闭数据库连接

}

}

DBObject condition = new BasicDBObject("userId","u234");

users.update(condition, new BasicDBObject("userId","cc").append("name","cc"));

当然也可以使用修改器

users.update(condition, new BasicDBObject("$set",new

BasicDBObject("name","ccNew")));

⑩范例:删除数据

package cn.mldn.demo;

import com.mongodb.*;

public class MongoDemoJ {

public static void main(String[] args) throws Exception {

// 设置要连接的数据库的主机名称与端口号

MongoClient client = new MongoClient("localhost", 27001);

DB db = client.getDB("mldn");  // 连接数据库

// 进行数据库的用户名与密码验证

if (db.authenticate("hello", "happy".toCharArray())) {

DBCollection col = db.getCollection("deptcol");    // 要操作的集合名字

DBObject cond = new BasicDBObject();   // 准备设置要修改的过滤条件

cond.put("deptno",new BasicDBObject("$gte",1000).append("$lte",1020)) ;

WriteResult result = col.remove(cond) ;

System.out.println(result.getN());

}

client.close();     // 关闭数据库连接

}

}

users.remove(new BasicDBObject("userId","u1"));

 
 
 
 
 
 
 
 
 
 

第51章:Java操作MongoDB-[Mongo-Java-2.x]的更多相关文章

  1. 【MongoDB for Java】Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...

  2. [转]MongoDB for Java】Java操作MongoDB

    原文地址: MongoDB for Java]Java操作MongoDB 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开 ...

  3. Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html 介绍到了在MongoDB的控制台完成MongoDB的数据操作,通 ...

  4. Mongodb快速入门之使用Java操作Mongodb

    [IT168 专稿]在上一篇文章中,我们学习了Mongodb的安装和初步使用,在本文中,将学习如何使用Java去编程实现对Mongodb的操作. HelloWorld程序 学习任何程序的第一步,都是编 ...

  5. JAVA操作MongoDB数据库

    1. 首先,下载MongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.Java操作Mo ...

  6. Mongodb入门并使用java操作Mongodb

    转载请注意出处:http://blog.csdn.net/zcm101 最近在学习NoSql,先从Mongodb入手,把最近学习的总结下. Mongodb下载安装 Mongodb的下载安装就不详细说了 ...

  7. 浅谈如何用Java操作MongoDB

    NoSQL数据库因其可扩展性使其变得越来越流行,利用NoSQL数据库可以给你带来更多的好处,MongoDB是一个用C++编写的可度可扩展性的开源NoSQL数据库.本文主要讲述如何使用Java操作Mon ...

  8. java操作mongodb(连接池)(转)

    原文链接: java操作mongodb(连接池) Mongo的实例其实就是一个数据库连接池,这个连接池里默认有10个链接.我们没有必要重新实现这个链接池,但是我们可以更改这个连接池的配置.因为Mong ...

  9. Java操作Mongodb(转载)

    好文章,值得收藏 HelloWorld程序 学习任何程序的第一步,都是编写HelloWorld程序,我们也不例外,看下如何通过Java编写一个HelloWorld的程序. 首先,要通过Java操作Mo ...

  10. [转载]使用Java操作Mongodb

    HelloWorld程序 学习任何程序的第一步,都是编写HelloWorld程序,我们也不例外,看下如何通过Java编写一个HelloWorld的程序. 首先,要通过Java操作Mongodb,必须先 ...

随机推荐

  1. whereis命令详解

    1.简介: whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息. 和find相比,whereis ...

  2. Cmake实践(Cmake Practice)第一部分

    参考资料地址:https://github.com/Akagi201/learning-cmake/blob/master/docs/cmake-practice.pdf 一.初识cmake 1. C ...

  3. github 绑定域名

    github的域名其实就两种,一种是个人主页,即所谓的每个账号只有一个的个人主页,XXXX.github.io,分支是master: 另一种是项目主页,可以有无数个,网上说分支应该是gh-pages, ...

  4. QUARTZ系列之零:概述

    前言: 很早就会使用quartz进行任务调度了,然一直只是会用,甚至只是会用如下的套路: { 1.获取个schedule 2.实例一个job 3.实例一个trigger 4. schedule.sch ...

  5. CSL 的神奇序列(猜猜猜?)

    链接:https://ac.nowcoder.com/acm/contest/551/F来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言10485 ...

  6. Codeforces Round #553 (Div. 2) C题

    题目网址:http://codeforces.com/contest/1151/problem/C 题目大意:给定奇数集和偶数集,现构造一个数组,先取奇数集中一个元素1,再取偶数集二个元素2,4,再取 ...

  7. jquery 入口函数

    jQuery 入口函数: $(document).ready(function(){ // 执行代码 }); 或者 $(function(){ // 执行代码 }); JavaScript 入口函数: ...

  8. Centos 7创建一个服务

    首先创建服务文件 vim /etc/systemd/system/node.service #内容如下 [Unit] Description=ethereum-go Monitor Daemon Af ...

  9. Unity3D UI适配

    直接贴图

  10. SQLServer 中有五种约束, Primary Key 约束、 Foreign Key 约束、 Unique 约束、 Default 约束和 Check 约束

    一直在关注软件设计方面,数据库方面就忽略了很多,最近在设计数据库时遇到了一些小麻烦,主要是数据库中约束和性能调优方面的应用,以前在学习 Sql Server 2000,还有后来的 Sql Server ...