闲暇之余,写了一个封装MongoDB数据库访问操作的小程序——Mongernate。
下面简单地介绍一下这个隔离层的特色:
1、业务层的编码人员不需要了解MongoDB的相关语法,即可对数据进行增删改查操作,进行常见开发;
2、支持json、xml和Map三种形式的增删改查方式。可根据项目情况自由选择(Map支持得还不够好)。
3、支持从配置文件dbConfig.properties读取配置信息
4、返回给业务层的所有数据均为java.util.Map形式。
下面是一段测试用例,有详尽的注释。
package com.skyedge.db;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* 演示了Mongernate的使用方法。
*
* @author GaoGao
*
*/
public class TestCase {
/**
* @param args
*/
@SuppressWarnings("unchecked")
public static void main(String[] args) {
// TODO Auto-generated method stub
// 测试连接
System.out.println("=============test connection==============");
DBManager dm = new DBManager();
dm.connect();
// 指定数据库
dm.use("soccer");
// 测试json
System.out.println("=============test json==============");
// 插入5条数据
dm.insert("{'name':'Van Der Sar','no':1,'position':'GK'}", "manu");
dm.insert("{'name':'Wes Brown','no':6,'position':'RB'}", "manu");
dm.insert("{'name':'Micheal Owen','no':7,'position':'CF'}", "manu");
dm.insert("{'name':'Wayne Rooney','no':10,'position':'CF'}", "manu");
dm.insert("{'name':'Ryan Giggs','no':11,'position':'SS'}", "manu");
// 更改吉格斯的位置
dm.update("{'name':'Ryan Giggs'}", "{'$set':{'position':'LMF'}}",
"manu");
//删除范德萨
dm.delete("{'name':'Van Der Sar'}", "manu");
// 查找所有球员,返回的是一个iterator
Iterator<Map<String, Object>> it = dm.selectIterator("manu");
// 应当输出 布朗、欧文、鲁尼和吉格斯
while (it.hasNext()) {
System.out.println(it.next());
}
System.out.println("-------------------");
// 选择球衣号码大于6的球员, 返回一个数组
ArrayList<Map<String, Object>> arr = dm.selectArray("{'no':{'$gt':6}}",
"manu");
// 应当输出欧文(7号),鲁尼10号,和吉格斯11号
for (int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i).get("name"));
}
dm.dropTable("manu");
// 测试map
System.out.println("=============test map==============");
// 插入3条数据
Map m = new HashMap<String, Object>();
m.put("name", "Van Der Sar");
m.put("no", 1);
dm.insert(m, "manu");
m = new HashMap<String, Object>();
m.put("name", "Brown");
m.put("no", 6);
dm.insert(m, "manu");
m = new HashMap<String, Object>();
m.put("name", "Owen");
m.put("no", 8);
dm.insert(m, "manu");
// 将欧文改为吉格斯
Map m1 = new HashMap<String, Object>();
m1.put("name", "Giggs");
m1.put("no", 11);
dm.update(m, m1, "manu");
// 查询所有球员,返回一个iterator
it = dm.selectIterator("manu");
// 输出 范德萨、布朗和吉格斯
while (it.hasNext()) {
System.out.println(it.next());
}
System.out.println("-------------------");
// 查找球员吉格斯
arr = dm.selectArray(m1,
"manu");
// 输出吉格斯
for (int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i).get("name"));
}
dm.dropTable("manu");
// 测试 xml
System.out.println("=============test xml==============");
// 插入4条数据
dm.insertFromXml("<player><name>Anderson</name><no>8</no><position>AMF</position></player>", "manu");
dm.insertFromXml("<player><name>Evans</name><no>23</no><position>CB</position></player>", "manu");
dm.insertFromXml("<player><name>Carrick</name><no>16</no><position>CMF</position></player>", "manu");
dm.insertFromXml("<player><name>Evra</name><no>3</no><position>LB</position></player>", "manu");
// 把16号球员(卡里克)改为维迪奇
dm.updateFromXml("<no>16</no>", "<player><name>Vidic</name><no>15</no><position>CB</position></player>",
"manu");
//删除位置为AMF的球员(安德森)
dm.deleteFromXml("<position>AMF</position>", "manu");
// 查找所有的中卫,返回一个iterator
it = dm.selectIteratorFromXml("<position>CB</position>","manu");
// 应当输出维迪奇和埃文斯
while (it.hasNext()) {
System.out.println(it.next());
}
dm.dropTable("manu");
}
}
运行结果:
附件中提供了测试用例的Eclipse工程。同时还附带了mongodb1.4的java driver和Mongernate的jar包。
因为源码写得很丑,过几天整理了之后,再发上来和大家共同讨论。
使用过程中遇到问题的,请站内信。谢谢你们。
- 大小: 8.4 KB
分享到:
相关推荐
使用java向mongodb中插入数据 一、Linux安装mongodb 二、MongoDB客户端工具(MongoVUE)访问mongodb 三、通过Java操作MongoDB
1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱
java 操作mongodb代码,可直接运行成功,作为初学者非常实用。其中数据库是包含用户名和密码,用户名root ,密码root。
java面试——MongoDB面试专题.zip
MongoDB 是一个可扩展的、高性能的、开源的NoSQL数据库,跟传统的数据库不一样,MongoDB并不是将数据存储在表中,他将数据结构化为一个类似于JSON的文档中。这篇文章就是展示如何使用Java基于MongoDB和Spring Data...
Java全能学习面试手册——Java面试题库.zip 01 7道消息队列ActiveMQ面试题!.pdf 02 10道Java高级必备的Netty面试题!.pdf 03 10道Java面试必备的设计模式面试题!.pdf 04 10个Java经典的List面试题!.pdf 05 10个...
Java 连接MongoDB, java 连接mongodb的操作
java连接mongodb.zip
java中mongodb使用环境详细配置,主要是在Windows上(WinXP)安装、运行、安装Windows服务的笔记,以作备忘。
Java操作MongoDB实例,压缩包内为完整项目源码,使用MyEclipse软件 见文:https://blog.csdn.net/qq_33427869/article/details/87270444
Java 操作Mongodb中存储的文件的实例
主要介绍了java+MongoDB实现存图片、下载图片的方法,结合实例形式详细分析了java结合MongoDB实现图片的存储与下载相关操作技巧,需要的朋友可以参考下
MongoDB实现增删改查,java程序驱动,复杂查询,源代码示例
将一系列图片文件存储到MongoDB中 java操作mongodb存储文件
java连接mongodb3.4.2所需jar
java连接mongodb的jar包,可以使用java访问mongoDB数据库
java连接mongodb测试,包括增删改查等操作的实用技术
mongodb安装配置及java操作mongodb 三个word文档和一个Jar包,记录了使用说明
java连接Mongodb进行增删改查,包括查询、删除、增加等功能