闲暇之余,写了一个封装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
分享到:
相关推荐
读书笔记:《左手MongoDB右手Redis——从入门到商业实战》书籍配套源代码。
在本文中,我们将使用java作为开发语言,并配合MongoDB数据库来存储和下载图片。java是一种广泛使用的编程语言,known for its platform independence和large community support。MongoDB是一种NoSQL数据库,known ...
Java连接MongoDB主要依赖于MongoDB的Java驱动程序,这是一个允许Java应用程序与MongoDB数据库进行交互的库。在本文中,我们将深入探讨如何使用Java连接MongoDB,涉及的知识点包括MongoDB Java驱动程序的安装、配置,...
将一系列图片文件存储到MongoDB中 java操作mongodb存储文件
MongoDB 是一个流行的开源、高性能、无模式的文档型...通过以上步骤,你可以实现文件的上传、下载、查询和删除,为你的应用程序提供了高效的数据存储解决方案。在实际开发中,记得根据需求调整错误处理和优化性能。
在Java编程环境中,MongoDB是一个广泛使用的文档型数据库,它以JSON格式存储数据,提供了高性能、高可用性和可扩展性。本教程将详细介绍如何使用Java进行MongoDB的基本操作,包括增(添加数据)、删(删除数据)、改...
Java 中 MongoDB 使用环境详细配置 Java 中 MongoDB 使用环境详细配置是指在 Windows 平台(WinXP)上安装、运行、安装 Windows 服务的笔记,以作备忘。下面是一些重要的知识点: 1. MongoDB 的下载和安装 ...
Java连接MongoDB是一个常见的任务,尤其在大数据处理和分布式存储的场景中。MongoDB是一个流行的文档型...通过理解这些概念和实践,开发者能够有效地在Java应用中集成MongoDB,构建强大的数据存储和处理解决方案。
总的来说,Java连接MongoDB主要依赖于这三个JAR包,它们共同构成了Java开发MongoDB应用的基础框架。正确理解和使用这些库可以让你轻松地在Java项目中集成MongoDB的功能,实现高效的数据存储和检索。
MongoDB是一款流行的、基于文档的NoSQL数据库,而Java是广泛应用于企业级开发的编程语言。结合两者,我们可以构建高效、灵活的数据驱动应用程序。 首先,确保你已经安装了MongoDB服务器并启动了它。你可以从MongoDB...
首先,我们需要理解JDBC,它是Java语言访问数据库的标准API,能够连接并操作多种类型的数据库。对于MySQL,JDBC提供了连接、查询、插入、更新和删除数据的能力。要使用JDBC,我们需要引入对应的数据库驱动,例如`...
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 结合提供了一种强大而灵活的方式来处理非结构化和半结构化数据,适用于现代 Web 应用和大数据处理场景。通过不断学习和实践,开发者可以更好地利用这两个工具来构建高效的应用程序。
这里提到的"Java连接mongoDB需要的jar包(3.9.1)"是指Java开发者用于连接MongoDB数据库的一组关键库文件,包括`bson-3.9.1.jar`、`mongodb-driver-3.9.1.jar`和`mongodb-driver-core-3.9.1.jar`。这些JAR文件是...
1. **下载安装包**: 首先,你需要从MongoDB官网下载适用于Linux的安装包,例如`mongodb-linux-x86_64-2.6.4.tgz`。 2. **解压安装**: 在Linux中,使用`tar -zxvf`命令解压下载的安装包,然后重命名解压后的目录,...
在Java开发环境中,我们可以使用Java驱动程序来与MongoDB进行交互,进行数据的存储和检索。本资料将深入讲解如何使用Java实现对MongoDB数据库的操作。 一、MongoDB简介 MongoDB是一个基于分布式文件存储的NoSQL...
复制集则是MongoDB提供的一种高可用性解决方案,通过在多个节点间复制数据来确保服务的持续性。 在"Java使用MongoDB的简单程序"中,我们将学习如何使用Java驱动程序连接到MongoDB数据库。Java驱动程序提供了一套API...