日期:2014-05-16  浏览次数:20525 次

MongoDB与Jackson JSON结合实现接口敏捷开发(转)

MongoDB的存储是基于文档的,区别于以往的关系型数据库,它的数据模式可以更加宽松灵活,特别适合日益多变的互联网应用。在最开始接触MongoDB的时候就被它JavaScript式的操作所吸引,更被JSON式的数据存储所震撼。当时就有一种直觉,这将极大简化应用接口的开发工作,使得数据交互变得异常轻松。下面我将以示例代码的方式介绍我的使用方法。

本示例代码使用了如下开发包:

MongoDB的官方Driver包:mongo-2.7.3.jar

基于MongoDB的ORM产品:morphia-0.99.jar

性能与功能都很棒的Jackson JSON:jackson-all-1.9.3.jar

另外还要辅助一些其他的依赖包:

morphia-logging-slf4j-0.99.jar

slf4j-api-1.6.1.jar

slf4j-nop-1.6.1.jar

相关链接:

MongoDB安装为Windows服务方法与注意事项:http://blog.csdn.net/chaijunkun/article/details/7227967

Java中JSON解析器的一点见解:http://blog.csdn.net/chaijunkun/article/details/7208828

上面的两篇文章是本人总结的一些经验之谈。作为参考,朋友们可以在遇到问题的时候参阅上面两篇文章。

下面进入正题:

我的思路分为两方面,即数据的输入和数据的输出。

输入源是一个文本文件,其中的数据来自SQL Server中的Northwind示例数据库。具体来说是从其中的订单信息中抽离出相关联的部分,经过加工整理而成。(数据已经上传到CSDN资源频道,下载地址:http://download.csdn.net/detail/chaijunkun/4067684,不要资源分哦!)通过按行读取文件中的内容模拟Web应用各客户端发来的数据,然后将它们存储到MongoDB中;

输出部分将实现一个按条件查询,从MongoDB中得到的查询结果将通过控制台输出。这样就能模拟Web应用服务端响应请求,将数据推送到客户端页面的场景了。

(特别注意:本文中设计到的所有源代码都是UTF-8格式编码的)

先实现一个连接属性的配置

?

public class MongoDBConnConfig {
    //MongoDB主机名称或IP
    public static final String SERVER= "localhost";
    //MongoDB端口
    public static final int PORT= 27017;
    //使用的数据库名称
    public static final String ORDERS_DATABASE= "orders";
}

? ? ?再实现一个Morphia框架与MongoDB的集成方法

/**
 * MongoDB联合Morphia框架生成DataStore的类
 *
 */
public class MongoDBDataStore {

     /**
      * 生成Orders数据库Datastore对象
      * @return 返回Datastore对象 发生异常返回为null
      */
    public static Datastore getOrdersInstance(){
        Mongo connection = null;
        try {
            connection = new Mongo(MongoDBConnConfig.SERVER, MongoDBConnConfig.PORT);
        } catch (UnknownHostException e) {
            return null;
        } catch (MongoException e) {
            return null;
        }

        Morphia morphia= new Morphia();
        return morp