mongodb java api下载_MongoDB(二)-- Java API 实现增删改查

本文档展示了如何使用Java进行MongoDB数据库的基本操作,包括连接MongoDB服务器、增删改查操作以及批量处理。通过示例代码详细解释了如何插入单条与多条记录、查询特定条件的数据、更新指定记录以及删除数据。内容涵盖了MongoDB的主要操作,适合初学者参考学习。
摘要由CSDN通过智能技术生成

1 packagecom.xbq.mongodb;2 importjava.util.ArrayList;3 importjava.util.HashMap;4 importjava.util.List;5 importjava.util.Map;6 importorg.bson.types.ObjectId;7 importcom.mongodb.BasicDBObject;8 importcom.mongodb.DB;9 importcom.mongodb.DBCollection;10 importcom.mongodb.DBCursor;11 importcom.mongodb.DBObject;12 importcom.mongodb.Mongo;13 importcom.mongodb.util.JSON;14

15 /**

16 * @ClassName: MongoDBTest17 * @Description: TODO MongoDB 增删改查 操作,包含批量操作18 *@authorxbq19 *@version1.020 * @date 2017-4-5 上午11:50:0621 */

22 public classMongoDBTest {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 staticMongo mongo;28 private staticDB db;29

30 static{31 //连接到MongoDB

32 mongo = newMongo(HOST, PORT);33 //打开数据库 testDB

34 db =mongo.getDB(DB_NAME);35 }36

37 public static voidmain(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: queryOne68 * @Description: TODO 查询 name为 张三的 一条记录69 *@paramdbCollection70 *@return: void71 */

72 public static voidqueryOne(DBCollection dbCollection){73 DBObject documents = new BasicDBObject("name","张三");74 DBObject result =dbCollection.findOne(documents);75 System.out.println(result);76 }77

78 /**

79 * @Title: queryPage80 * @Description: TODO 分页查询 , 查询 跳过前2条 后的 3条 数据81 *@paramdbCollection82 *@return: void83 */

84 public static voidqueryPage(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: queryRange93 * @Description: TODO 范围查询,查询 第3条 到 第5条 之间的记录94 *@paramdbCollection95 *@return: void96 */

97 public static voidqueryRange(DBCollection dbCollection) {98 DBObject range = newBasicDBObject();99 range.put("$gte", 50);100 range.put("$lte", 52);101

102 DBObject dbObject = newBasicDBObject();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: queryList112 * @Description: TODO 查询出全部的 记录113 *@paramdbCollection114 *@return: void115 */

116 public static voidqueryList(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: addOne128 * @Description: TODO 新增 一条记录129 *@paramdbCollection130 *@return: void131 */

132 public static voidaddOne(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: addList140 * @Description: TODO 批量新增 记录 , 增加的记录 中 可以使用各种数据类型141 *@paramdbCollection142 *@return: void143 */

144 public static voidaddList(DBCollection dbCollection){145 List listdbo= new ArrayList();146 DBObject dbObject = newBasicDBObject();147 dbObject.put("name", "老王");148 //可以直接保存List类型

149 List list = new ArrayList();150 list.add("非隔壁老王");151 dbObject.put("remark", list);152 listdbo.add(dbObject);153

154 dbObject = newBasicDBObject();155 //可以直接保存map

156 Map> map = new HashMap>();157 List hobbys = new ArrayList();158 hobbys.add("看花");159 hobbys.add("采花");160 map.put("爱好", hobbys);161 dbObject.put("hobby", map);162 listdbo.add(dbObject);163

164 dbObject = newBasicDBObject();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: addByJson176 * @Description: TODO json转对象后 ,执行新增177 *@paramdbCollection178 *@return: void179 */

180 public static voidaddByJson(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: update189 * @Description: TODO 修改指定记录190 *@paramdbCollection191 *@return: void192 */

193 public static voidupdateOne(DBCollection dbCollection) {194 //先根据id查询将 这条 记录查询出来

195 DBObject qryResult = dbCollection.findOne(new ObjectId("58e4a11c6c166304f0635958"));196 //修改指定的值

197 qryResult.put("age", 55);198

199 DBObject olddbObject = newBasicDBObject();200 olddbObject.put("_id", new ObjectId("58e4a11c6c166304f0635958"));201 dbCollection.update(olddbObject, qryResult);202 }203

204 /**

205 * @Title: updateMulti206 * @Description: TODO 修改 多条记录207 *@paramdbCollection208 *@return: void209 */

210 public static voidupdateMulti(DBCollection dbCollection) {211 DBObject newdbObject = newBasicDBObject();212 newdbObject.put("name", "张三");213 newdbObject.put("address", "广东深圳");214 newdbObject.put("remark", "张三是一个NB的Coder");215

216 DBObject olddbObject = newBasicDBObject();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: deleteFirst227 * @Description: TODO 删除第一个228 *@param

229 *@return: void230 */

231 public static voiddeleteFirst(DBCollection dbCollection){232 DBObject dbObject =dbCollection.findOne();233 dbCollection.remove(dbObject);234 }235

236 /**

237 * @Title: deleteOne238 * @Description: TODO 删除指定的一条记录239 *@paramdbCollection240 *@return: void241 */

242 public static voiddeleteOne(DBCollection dbCollection){243 DBObject dbObject = newBasicDBObject();244 dbObject.put("_id", new ObjectId("58e49c2d6c166309e0d50484"));245 dbCollection.remove(dbObject);246 }247

248 /**

249 * @Title: deleteByIn250 * @Description: TODO 删除多条记录 例如:select * from tb where name in('12','34')251 *@paramdbCollection252 *@return: void253 */

254 public static voiddeleteByIn(DBCollection dbCollection) {255 List list = new ArrayList();256 list.add("老张");257 list.add("老王");258 list.add("张三");259 DBObject dbObject = new BasicDBObject("$in", list);260

261 DBObject delObject = newBasicDBObject();262 delObject.put("name", dbObject);263 dbCollection.remove(delObject);264 }265

266 /**

267 * @Title: deleteAll268 * @Description: TODO 删除全部的记录269 *@paramdbCollection270 *@return: void271 */

272 public static voiddeleteAll(DBCollection dbCollection){273 DBCursor cursor =dbCollection.find();274 while(cursor.hasNext()){275 dbCollection.remove(cursor.next());276 }277 }278 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值