• MongoDB的使用学习之(五)Spring集成MongoDB以及简单的CRUD


    这篇文章不错:Spring Data - MongoDB 教程 (1.0.0.M1)http://miller-cn.iteye.com/blog/1258859

    1、介绍

      之前在很多地方一直见到这个Spring Data 神奇的东西,不知道是啥东东,终于,今天来简单的探个究竟,底下是我从网上整理来的……

      首先,解释下为啥要使用Spring来集成MongoDB:因为mongoDB的java驱动程序使用起来较为繁琐,特别是处理关联关系多、层次深的情况时。需要书写大量的构造DBObject的代码。遇到这样的问题第一个肯定想到“万金油”spring。spring data对很多nosql产品都有支持,比如redis、hbase、mongodb、neo4j等。如果工程已经使用了spring,引入spring data那应该是理所当然咯。

      Spring Data简介:

      Spring Data 作为SpringSource的其中一个父项目, 旨在统一和简化对各类型持久化存储, 而不拘泥于是关系型数据库还是NoSQL 数据存储。无论是哪种持久化存储, 数据访问对象(或称作为DAO,即 Data Access Objects)通常都会提供对单一域对象的CRUD (创建、读取、更新、删除)操作、查询方法、排序和分页方法等。 Spring Data则提供了基于这些层面的统一接口(CrudRepository,PagingAndSortingRepository)以及对持久化存储的实现。比如 jdbcTemplate,mongoTemplate==;Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库、Map-Reduce 框架、 云数据服务等等;另外也包含对关系数据库的访问支持。

      有木有使用Spring Data的对比,场景:对MongoDB进行模糊匹配的查询:

      删除一个条目 

    • 传统的MongoDB实现
     1 public Boolean delete(String id) {
     2   logger.debug(Deleting existing person);
     3    
     4   try {
     5    // 检索一个条目
     6    BasicDBObject item = (BasicDBObject) getDBObject( id );
     7    // 获取集合
     8    DBCollection coll = MongoDBFactory.getCollection(mydb,mycollection);
     9    // 删除检索到的条目
    10          coll.remove(item);
    11           
    12    return true;
    13     
    14   } catch (Exception e) {
    15    logger.error(An error has occurred while trying to delete new user, e);
    16    return false;
    17   }
    18  }
    • 通过Spring Data的实现
     1 public Boolean delete(String id) {
     2   logger.debug(Deleting existing person);
     3   
     4   try {
     5    
     6    // 通过id检索到一个Person
     7          Query query = new Query(where(pid).is(id));
     8          // 运行查询和删除
     9          mongoTemplate.remove(query);
    10          
    11    return true;
    12    
    13   } catch (Exception e) {
    14    logger.error(An error has occurred while trying to delete new user, e);
    15    return false;
    16   }
    17  }

    明显可以看出使用Spring Data敲的代码比较容易理解、工整

      现在有很多人Spring见的腻了也开始烦了。是的,Spring野心很大,他几乎想要垄断Java方面的任何事情。没办法我从使用Spring后就离不开他,以至于其他框架基本上都不用学。我学了Spring的很多,诸如:Spring Security/Spring Integration/Spring Batch等。。。不发明轮子的他已经提供了编程里的很多场景,我利用那些场景解决了工作中的很多问题,也使我的工作变得很高效。从而我又时间学到它更多。Spring Data Mongo封装了mongodb java driver,提供了和SpringJDBC/Template一致编程风格的MongoTemplate

    见:http://static.springsource.org/spring-data/data-mongodb/docs/current/api/org/springframework/data/mongodb/core/MongoTemplate.html

    2、Spring Data MongoDB的CRUD

      项目的源码来自于http://blog.mkfree.com/posts/511396a3975a15ea1757d849,底下有项目的源码链接,下载导入即可使用,使用的是Maven创建工程项目,感谢此博主的无私奉献,里面的有关MongoDB的文章还是不错的,看得出来是博主自己的经验积累,我也是从中得到了些知识,不过,说一句,那网站不管是界面还是功能,都不敢恭维啊,文章列表都是乱七八糟的,连最基本的分类都没有,稍微吐槽下……

      接下来的有关代码的项目,应该都是原创了,敬请期待……

  • 相关阅读:
    open_basedir restriction in effect的错误及其解决办法
    SNMP-网络管理协议
    安装cacti监控系统
    并发时-修改Linux系统下的最大文件描述符限制
    js new date()说明
    阿里云ECS环境部署 centos 6.5
    sysbench
    http_load
    LeetCode: Spiral Matrix
    LeetCode:Length of Last Word
  • 原文地址:https://www.cnblogs.com/ontheroad_lee/p/3708653.html
Copyright © 2020-2023  润新知