MongoDB java API 实现增删改查

一、下载jar包

  http://central.maven.org/maven2/org/mongodb/mongo-java-driver/

二、代码实现

  1 package com.xbq.mongodb;
  2 import java.util.ArrayList;
  3 import java.util.HashMap;
  4 import java.util.List;
  5 import java.util.Map;
  6 import org.bson.types.ObjectId;
  7 import com.mongodb.BasicDBObject;
  8 import com.mongodb.DB;
  9 import com.mongodb.DBCollection;
 10 import com.mongodb.DBCursor;
 11 import com.mongodb.DBObject;
 12 import com.mongodb.Mongo;
 13 import com.mongodb.util.JSON;
 14
 15 /**
 16  * @ClassName: MongoDBTest
 17  * @Description: TODO MongoDB 增删改查 操作,包含批量操作
 18  * @author xbq
 19  * @version 1.0
 20  * @date 2017-4-5 上午11:50:06
 21  */
 22 public class MongoDBTest {
 23
 24     private static final String HOST = "192.168.242.129";
 25     private static final int PORT = 27017;
 26     private static final String DB_NAME = "testDB";
 27     private static Mongo mongo;
 28     private static DB db;
 29
 30     static {
 31         // 连接到MongoDB
 32         mongo = new Mongo(HOST, PORT);
 33         // 打开数据库 testDB
 34         db = mongo.getDB(DB_NAME);
 35     }
 36
 37     public static void main(String[] args) {
 38         // 获取集合 xbqTable,若该集合不存在,mongoDB将自动创建该集合
 39         DBCollection dbCollection = db.getCollection("testTable");
 40
 41         // 查询该数据库所有的集合名
 42         for(String name : mongo.getDatabaseNames()){
 43             System.out.println(name);
 44         }
 45
 46 //        addOne(dbCollection);
 47 //        addList(dbCollection);
 48 //        addByJson(dbCollection);
 49
 50 //        deleteOne(dbCollection);
 51 //        deleteByIn(dbCollection);
 52 //        deleteAll(dbCollection);
 53
 54 //        updateOne(dbCollection);
 55 //        updateMulti(dbCollection);
 56
 57 //        queryOne(dbCollection);
 58 //        queryPage(dbCollection);
 59 //        queryRange(dbCollection);
 60         queryList(dbCollection);
 61
 62     }
 63
 64
 65     // ====================================查询开始==============================================
 66     /**
 67      * @Title: queryOne
 68      * @Description: TODO 查询 name为 张三的 一条记录
 69      * @param dbCollection
 70      * @return: void
 71      */
 72     public static void queryOne(DBCollection dbCollection){
 73         DBObject documents = new BasicDBObject("name","张三");
 74         DBObject result = dbCollection.findOne(documents);
 75         System.out.println(result);
 76     }
 77
 78     /**
 79      * @Title: queryPage
 80      * @Description: TODO 分页查询  , 查询 跳过前2条 后的 3条 数据
 81      * @param dbCollection
 82      * @return: void
 83      */
 84     public static void queryPage(DBCollection dbCollection){
 85         DBCursor cursor = dbCollection.find().skip(2).limit(3);
 86         while (cursor.hasNext()) {
 87             System.out.println(cursor.next());
 88         }
 89     }
 90
 91     /**
 92      * @Title: queryRange
 93      * @Description: TODO 范围查询,查询 第3条 到 第5条 之间的记录
 94      * @param dbCollection
 95      * @return: void
 96      */
 97     public static void queryRange(DBCollection dbCollection) {
 98         DBObject range = new BasicDBObject();
 99         range.put("$gte", 50);
100         range.put("$lte", 52);
101
102         DBObject dbObject = new BasicDBObject();
103         dbObject.put("age", range);
104         DBCursor cursor = dbCollection.find(dbObject);
105         while (cursor.hasNext()) {
106             System.out.println(cursor.next());
107         }
108     }
109
110     /**‘
111      * @Title: queryList
112      * @Description: TODO 查询出全部的 记录
113      * @param dbCollection
114      * @return: void
115      */
116     public static void queryList(DBCollection dbCollection) {
117         DBCursor cursor = dbCollection.find();
118         DBObject dbObject = null;
119         while(cursor.hasNext()){
120             dbObject = cursor.next();
121             System.out.println(dbObject);
122         }
123     }
124
125     // ====================================增加开始==============================================
126     /**
127      * @Title: addOne
128      * @Description: TODO 新增 一条记录
129      * @param dbCollection
130      * @return: void
131      */
132     public static void addOne(DBCollection dbCollection){
133         DBObject documents = new BasicDBObject("name","张三").append("age", 45).append("sex", "男").append("address",
134                 new BasicDBObject("postCode", 100000).append("street", "深南大道888号").append("city", "深圳"));
135         dbCollection.insert(documents);
136     }
137
138     /**
139      * @Title: addList
140      * @Description: TODO 批量新增 记录    , 增加的记录 中 可以使用各种数据类型
141      * @param dbCollection
142      * @return: void
143      */
144     public static void addList(DBCollection dbCollection){
145         List<DBObject> listdbo= new ArrayList<DBObject>();
146         DBObject dbObject = new BasicDBObject();
147         dbObject.put("name", "老王");
148         // 可以直接保存List类型
149         List<String> list = new ArrayList<String>();
150         list.add("非隔壁老王");
151         dbObject.put("remark", list);
152         listdbo.add(dbObject);
153
154         dbObject = new BasicDBObject();
155         // 可以直接保存map
156         Map<String,List<String>> map = new HashMap<String,List<String>>();
157         List<String> hobbys = new ArrayList<String>();
158         hobbys.add("看花");
159         hobbys.add("采花");
160         map.put("爱好", hobbys);
161         dbObject.put("hobby", map);
162         listdbo.add(dbObject);
163
164         dbObject = new BasicDBObject();
165         dbObject.put("name", "老张");
166         dbObject.put("age", 52);
167         dbObject.put("job", "看守老王");
168         dbObject.put("remark", new BasicDBObject("address", "广东省深圳市").append("street", "深南大道888号"));
169         listdbo.add(dbObject);
170
171         dbCollection.insert(listdbo);
172     }
173
174     /**
175      * @Title: addByJson
176      * @Description: TODO json转对象后 ,执行新增
177      * @param dbCollection
178      * @return: void
179      */
180     public static void addByJson(DBCollection dbCollection){
181         String json = "{ \"name\" : \"王五\" , \"age\" : 66 , \"job\" : \"看守老王\" , \"remark\" : { \"address\" : \"广东省深圳市\" , \"street\" : \"深南大道888号\"}}";
182         DBObject dbObject = (DBObject) JSON.parse(json);
183         dbCollection.insert(dbObject);
184     }
185
186     // ====================================修改开始==============================================
187     /**
188      * @Title: update
189      * @Description: TODO 修改指定记录
190      * @param dbCollection
191      * @return: void
192      */
193     public static void updateOne(DBCollection dbCollection) {
194         // 先根据id查询将 这条 记录查询出来
195         DBObject qryResult = dbCollection.findOne(new ObjectId("58e4a11c6c166304f0635958"));
196         // 修改指定的值
197         qryResult.put("age", 55);
198
199         DBObject olddbObject = new BasicDBObject();
200         olddbObject.put("_id", new ObjectId("58e4a11c6c166304f0635958"));
201         dbCollection.update(olddbObject, qryResult);
202     }
203
204     /**
205      * @Title: updateMulti
206      * @Description: TODO 修改 多条记录
207      * @param dbCollection
208      * @return: void
209      */
210     public static void updateMulti(DBCollection dbCollection) {
211         DBObject newdbObject = new BasicDBObject();
212         newdbObject.put("name", "张三");
213         newdbObject.put("address", "广东深圳");
214         newdbObject.put("remark", "张三是一个NB的Coder");
215
216         DBObject olddbObject = new BasicDBObject();
217         olddbObject.put("name", "张三");
218         // 需要加上这个
219         DBObject upsertValue = new BasicDBObject("$set", newdbObject);
220         // 后面的两个参数:1.若所更新的数据没有,则插入 ; 2、同时更新多个符合条件的文档(collection)
221         dbCollection.update(olddbObject, upsertValue, true, true);
222     }
223
224     // ====================================删除开始==============================================
225     /**
226      * @Title: deleteFirst
227      * @Description: TODO 删除第一个
228      * @param
229      * @return: void
230      */
231     public static void deleteFirst(DBCollection dbCollection){
232         DBObject dbObject = dbCollection.findOne();
233         dbCollection.remove(dbObject);
234     }
235
236     /**
237      * @Title: deleteOne
238      * @Description: TODO 删除指定的一条记录
239      * @param dbCollection
240      * @return: void
241      */
242     public static void deleteOne(DBCollection dbCollection){
243         DBObject dbObject = new BasicDBObject();
244         dbObject.put("_id", new ObjectId("58e49c2d6c166309e0d50484"));
245         dbCollection.remove(dbObject);
246     }
247
248     /**
249      * @Title: deleteByIn
250      * @Description: TODO 删除多条记录      例如:select * from tb where name in(‘12‘,‘34‘)
251      * @param dbCollection
252      * @return: void
253      */
254     public static void deleteByIn(DBCollection dbCollection) {
255         List<String> list = new ArrayList<String>();
256         list.add("老张");
257         list.add("老王");
258         list.add("张三");
259         DBObject dbObject = new BasicDBObject("$in", list);
260
261         DBObject delObject = new BasicDBObject();
262         delObject.put("name", dbObject);
263         dbCollection.remove(delObject);
264     }
265
266     /**
267      * @Title: deleteAll
268      * @Description: TODO 删除全部的记录
269      * @param dbCollection
270      * @return: void
271      */
272     public static void deleteAll(DBCollection dbCollection){
273         DBCursor cursor = dbCollection.find();
274         while(cursor.hasNext()){
275             dbCollection.remove(cursor.next());
276         }
277     }
278 }

三、源码下载

  点我下载

时间: 2024-10-21 11:00:12

MongoDB java API 实现增删改查的相关文章

mongodb的安装与增删改查

mongodb是一款分布式的文件存储的数据库,注意这两个词,分布式和文件存储.mongodb支持复制和分片,可以合理的运用空间的大小,也可以达到容灾的目的.另外文件存储也是一个特点,抛弃了传统的表的概念,使用了集合的概念,下面是对应图 另外一个mongodb具有的优势便是其具有一个javascript的shell,你可以在这里使用纯js的语法. 目前mongodb的版本是3.X版本的,其api相对于2.x版本的变化了不少,包括很多常用的增删改查的命令都有所变化. 首先,下载mongodb,然后c

mongoDB (mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

MongoDB - 简介 官网:https://www.mongodb.com/ MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB - 安装及运行 下载 07/05/2017 Current Stable Release (3.4.6) https://www.mongodb.com/dow

java DMO及增删改查代码的自动生成

在web开发过程中,尤其是后台管理系统的开发中,少不了增删改成的基础操作,原来我自己的做法是一份一份的拷贝粘贴,然后修改其中的不同,然而这样既枯燥无味又浪费了大量的时间,所以根据自己项目结构的特点写了一个自动生成结构代码的工具jar包,可以根据数据库表直接生成相应数据库模型对象(DMO)以及对表的增删改查代码. 之前我考虑过多种自动生成代码的提供方式,比如web的方式,通过在页面文本框里面输入各种参数,比如模板文件地址,生成文件地址,数据库名,数据库用户名和密码等,点击生成按钮就可以生成源代码文

Java学生信息增删改查(并没用数据库)

一个泛型的应用,Java版本增删改查,写的简陋,望批评指正 2016-07-02 很久前写的一个程序了.拿出来存一下,不是为了展示啥,自己用的时候还可以看看.写的很粗糙. 1 import java.io.BufferedReader; 2 import java.io.File; 3 import java.io.FileNotFoundException; 4 import java.io.FileReader; 5 import java.io.IOException; 6 import

LR接口测试---Java Vuser之增删改查

1 import lrapi.lr; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 8 public class Actions { 9 //定义用户名,密码,连接的URL 10 String username = "root"; 11 String password

【简易版】Java ArrayList(增删改查)

1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: (1)动态的增加和减少元素 (2)实现了ICollection和IList接口 (3)灵活的设置数组的大小 2.ArrayLis的创建以及增删改查方法 (1)ArrayList的创建以及元素的添加ArrayList <变量名> = new ArrayList(); //()中也可传参. 注释:上面是创建一个空的ArrayList列表.当我们想往列表中传递元

java字符串的增删改查 StringBuffer

StringBuffer 的增删改查,这样使用! 输出结果就是后面注释 StringBuffer sb = new StringBuffer("HelloWork1234567890"); // 增加(在字符串末尾插入字符) System.out.println(sb.append(".java")); //HelloWork1234567890.java // 插入(在索引 2 的位置插入字符) System.out.println(sb.insert(2,&qu

Java之Elasticsearch 增删改查

<!--ELK --> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.1.1</version> <exclusions> <!--<exclusion> <artifactId>transport-netty4

MongoDB在windows上安装以及java中的增删改查

1.windows下的安装创建 http://tech.it168.com/a2011/0603/1200/000001200064_2.shtml http://blog.csdn.net/xiaoxing598/article/details/54233044 2.Java操作mongodb http://www.cnblogs.com/zhwl/p/3491213.html http://blog.csdn.net/xiaoyw71/article/details/49633831 htt