1:首先需要下载mongodb的java驱动包

https://github.com/mongodb/mongo-java-driver/downloads

2:需要下载spring集成mongodb的包

下载途径:

a:去csdn下

b:去http://projects.spring.io/spring-data-mongodb/ 使用Maven方式下载

c:网上其他地方找

要下载的包如下

spring-data-commons-core-1.2.0.M2.jar

spring-data-mongodb-1.0.0.M4.jar

spring-data-mongodb-cross-store-1.0.0.M4.jar

spring-data-mongodb-log4j-1.0.0.M4.jar

为什么选择很老的1.0.0版本,是因为我的spring框架是3.0.5的,不知道是不是spring版本低了的原因,选择高点的如1.4.0反正会报错

3:ok  包包都⑦了,开始编码了,先说说配置文件

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  6. <!-- spring配置文件目录-->
  7. <context-param>
  8. <param-name>contextConfigLocation</param-name>
  9. <param-value>classpath:spring/*.xml</param-value>
  10. </context-param>
  11. <listener>
  12. <listener-class>
  13. org.springframework.web.context.ContextLoaderListener
  14. </listener-class>
  15. </listener>
  16. </web-app>

application-global.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:aop="http://www.springframework.org/schema/aop"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xmlns:mvc="http://www.springframework.org/schema/mvc"
  7. xmlns:mongo="http://www.springframework.org/schema/data/mongo"
  8. xsi:schemaLocation="http://www.springframework.org/schema/beans
  9. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  10. http://www.springframework.org/schema/aop
  11. http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
  12. http://www.springframework.org/schema/context
  13. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  14. http://www.springframework.org/schema/mvc
  15. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
  16. http://www.springframework.org/schema/data/mongo
  17. http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">
  18. <!-- 获取配置文件属性 -->
  19. <bean id="placeholderConfig"
  20. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  21. <property name="location">
  22. <value>classpath:db.properties</value>
  23. </property>
  24. </bean>
  25. <!-- Default bean name is 'mongo' -->
  26. <!-- 连接池配置详细查看http://api.mongodb.org/java/2.7.2/com/mongodb/MongoOptions.html#connectionsPerHost
  27. 或者http://www.cnblogs.com/huangfox/archive/2012/04/01/2428947.html
  28. -->
  29. <mongo:mongo host="${datasource.host}" port="${datasource.port}">
  30. <mongo:options connections-per-host="10"
  31. threads-allowed-to-block-for-connection-multiplier="10"
  32. auto-connect-retry="true" />
  33. </mongo:mongo>
  34. <!-- Spring提供的mongodb操作模板-->
  35. <bean id="mongoTemplate"
  36. class="org.springframework.data.mongodb.core.MongoTemplate">
  37. <constructor-arg ref="mongo" />
  38. <constructor-arg name="databaseName" value="${datasource.dbname}" />
  39. </bean>

</beans>

  1. <strong><span style="color:#ff0000;">db.properties</span></strong>

#datasource.host=localhost
datasource.host=12.35.174.48
#datasource.port=27017
datasource.port=9933
datasource.dbname=logDB

datasource.username=test
datasource.passwd=test

4:spring的db操作模板MongoTemplate

      具体使用参考百度或者官网http://docs.spring.io/spring-data/data-mongodb/docs/current/api/org/springframework/data/mongodb/core/MongoTemplate.html#getDb()
  
程序启动时,注入MongoTemplate模板
  1. package dao.impl;
  2. import org.springframework.beans.BeansException;
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.ApplicationContextAware;
  5. import org.springframework.data.mongodb.core.MongoTemplate;
  6. import com.mongodb.DB;
  7. public class AbstractBaseMongoTemplete  implements ApplicationContextAware {
  8. protected MongoTemplate mongoTemplate;
  9. protected DB db;
  10. /**
  11. * 设置mongoTemplate
  12. * @param mongoTemplate the mongoTemplate to set
  13. */
  14. public void setMongoTemplate(MongoTemplate mongoTemplate) {
  15. this.mongoTemplate = mongoTemplate;
  16. }
  17. public void setApplicationContext(ApplicationContext applicationContext)
  18. throws BeansException {
  19. //System.out.println("ApplicationContextAware开始执行setApplicationContext方法");
  20. MongoTemplate mongoTemplate = applicationContext.getBean("mongoTemplate", MongoTemplate.class);
  21. setMongoTemplate(mongoTemplate);
  22. db=mongoTemplate.getDb();
  23. }
  24. }

5:具体操作类接口

  1. public interface  IDbDao {
  2. /**
  3. * 插入单个
  4. * @param obj
  5. * @return
  6. */
  7. public abstract DBObject insert(DBObject obj);
  8. /**
  9. * 插入json格式字符串
  10. * @param jsonStr
  11. * @return
  12. */
  13. public abstract WriteResult insert(String jsonStr);
  14. /**
  15. * 批量插入
  16. * @param list
  17. */
  18. public abstract void insertBatch(List<DBObject> list);
  19. /**
  20. * 插入json文件
  21. * @param list
  22. */
  23. public abstract void insertFile(String fileName);
  24. /**
  25. * 删除单个
  26. * @param obj
  27. */
  28. public abstract void delete(DBObject obj);
  29. /**
  30. * 批量删除
  31. * @param list
  32. */
  33. public abstract void deleteBatch(List<DBObject> list);
  34. /**
  35. * 修改
  36. * @param searchFields  要修改的查询条件
  37. * @param updateFields  修改的值
  38. */
  39. public abstract void update(DBObject searchFields,DBObject updateFields);
  40. /**
  41. * 按条件查询
  42. * @return
  43. */
  44. public abstract List<BasicDBObject> find();
  45. /**
  46. * 按条件查询
  47. * @param query 查询条件
  48. * @return
  49. */
  50. public abstract List<BasicDBObject> find(DBObject query);
  51. /**
  52. * 排序查询
  53. * @param query
  54. * @param sort   new BasicDBObject("age", true)   则对age字段降序  注意1是升序,-1是降序
  55. * @param _class  要返回的实体bean类型
  56. * @return
  57. */
  58. public abstract List<BasicDBObject> find(DBObject query,DBObject sort);
  59. /**
  60. * 分页查询
  61. * @param query 查询条件
  62. * @param start 起始
  63. * @param limit 每页多少数据
  64. * @return
  65. */
  66. public abstract List<BasicDBObject> find(DBObject query,int start,int limit);
  67. /**
  68. * 分页查询
  69. * @param query 查询条件
  70. * @param sort  排序
  71. * @param start 起始
  72. * @param limit 每页多少数据
  73. * @return
  74. */
  75. public abstract List<BasicDBObject> find(DBObject query,DBObject sort,int start,int limit);
  76. /**
  77. * 按条件查询
  78. * @param _class  要返回的实体bean类型
  79. * @return
  80. */
  81. public abstract List<Object> find(Class _class);
  82. /**
  83. * 按条件查询
  84. * @param query 查询条件
  85. * @param _class  要返回的实体bean类型
  86. * @return
  87. */
  88. public abstract List<Object> find(DBObject query,Class _class);
  89. /**
  90. * 排序查询
  91. * @param query 查询条件
  92. * @param sort   new BasicDBObject("age", true)   则对age字段降序  注意1是升序,-1是降序
  93. * @param _class  要返回的实体bean类型
  94. * @return
  95. */
  96. public abstract List<Object> find(DBObject query,DBObject sort,Class _class);
  97. /**
  98. * 分页查询
  99. * @param query 查询条件
  100. * @param start 起始
  101. * @param limit 每页多少数据
  102. * @param _class  要返回的实体bean类型
  103. * @return
  104. */
  105. public abstract List<Object> find(DBObject query,int start,int limit,Class _class);
  106. /**
  107. * 分页查询
  108. * @param query 查询条件
  109. * @param sort  排序
  110. * @param start 起始
  111. * @param limit 每页多少数据
  112. * @param _class  要返回的实体bean类型
  113. * @return
  114. */
  115. public abstract List<Object> find(DBObject query,DBObject sort,int start,int limit,Class _class);
  116. /**
  117. * 按条件查询,返回查询个数
  118. * @param query 查询条件
  119. * @return
  120. */
  121. public abstract int findCount(DBObject query);
  122. /**
  123. * 排序查询,返回查询个数
  124. * @param query
  125. * @param sort   new BasicDBObject("age", true)   则对age字段降序  注意1是升序,-1是降序
  126. * @param _class  要返回的实体bean类型
  127. * @return
  128. */
  129. public abstract int findCount(DBObject query,DBObject sort);
  130. /**
  131. * 获取总数
  132. * @param obj
  133. * @return
  134. */
  135. public abstract long getCount(DBObject obj);
  136. /**
  137. * 获取总数
  138. * @param obj
  139. * @return
  140. */
  141. public abstract long getCount();
  142. /**
  143. * 利用java驱动自带函数分组查询
  144. * @param key 用来分组文档的字段
  145. * @param cond 执行过滤的条件
  146. * @param initial reduce中使用变量的初始化
  147. * @param reduce reduce(参数:当前文档和累加器文档.)
  148. * @param fn
  149. * @return
  150. */
  151. public abstract DBObject group(DBObject key,DBObject cond,DBObject initial,String reduce,String fn );
  152. /**
  153. * 使用聚合框架(参考http://docs.mongodb.org/manual/reference/sql-aggregation-comparison/)
  154. * @param firstDb
  155. * @param optionDb
  156. * @return
  157. */
  158. public abstract AggregationOutput  aggregation(DBObject firstDb,DBObject ...optionDb);
  159. public abstract DBCollection getCollection();
  160. /**
  161. * 创建索引
  162. * @param obj  new BasicDBObject("name", 1)); // 1代表升序 -1代表降序
  163. */

mongodb集成spring的更多相关文章

  1. 【原】Spring与MongoDB集成:配置

    MongoDB的API提供了DBObject接口来实现BSONObject的操作方法,BasicDBObject是具体实现.但是并没有提供DBObject与BeanObject的转换.在还没有了解到与 ...

  2. hbase+hadoop+hdfs集群搭建 集成spring

    序言 最近公司一个汽车项目想用hbase做存储,然后就有了这篇文字,来,来,来, 带你一起征服hbase,并推荐一本书<hbase权威指南> 这是一本极好的hbase入门书籍,我花了一个晚 ...

  3. MyBatis6:MyBatis集成Spring事物管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...

  4. CXF集成Spring实现webservice的发布与请求

    CXF集成Spring实现webservice的发布(服务端) 目录结构: 主要代码: package com.cxf.spring.pojo; public class User { int id ...

  5. Dubbo集成Spring与Zookeeper实例

    >>Dubbo最佳实践 使用Dubbo结合Zookeeper和Spring,是使用比较广泛的一种组合,下面参考官方文档,做个简单的示例,一步步搭建一个使用dubbo结合Zookeeper和 ...

  6. Thymeleaf 集成spring

    Thymeleaf 集成spring 如需先了解Thymeleaf的单独使用,请参考<Thymeleaf模板引擎使用>一文. 依赖的jar包 Thymeleaf 已经集成了spring的3 ...

  7. 06_在web项目中集成Spring

    在web项目中集成Spring 一.使用Servlet进行集成测试 1.直接在Servlet 加载Spring 配置文件 ApplicationContext applicationContext = ...

  8. Hibernate 检索查询的几种方式(HQL,QBC,本地SQL,集成Spring等)

    1.非集成Spring hibernate的检索方式,主要有以下五种. 1.导航对象图检索方式.(根据已经加载的对象,导航到其他对象.) 2.OID检索方式.(按照对象的OID来检索对象.) 3.HQ ...

  9. SpringMVC 3.1集成Spring Security 3.1

    这篇算是一个入门文章,昨天看见有网友提问,spring mvc集成spring security 的时候出错,揣测了一下问题木有解决.我就帮忙给搭建了一个集成框架他说可以,他告诉我这样的文章网上少.今 ...

随机推荐

  1. pywinauto简单介绍

    Pywinauto是基于Python开发的,用于自动化测试的脚本模块,主要操作于Windows标准图形界面.它可以允许你很容易的发送鼠标.键盘动作给Windows的对话框和控件. 其中,最主要功能为对 ...

  2. uva 165 Stamps

    题意: 现有k种邮票面额, 一封信上最多贴h张邮票. 求能贴出的最大连续区间,即[1, max_value]这个区间内的所有面额都能贴出来. 并输出k种面额, h + k <= 9. 思路: 这 ...

  3. centos 卸载vsftpd方法

    centos 卸载vsftpd方法 在服务器上安装了vsftpd,配置出错需要卸载vsftpd.卸载vsftpd的命令如下: 1 [root@localhost ~]# rpm -aq vsftpd2 ...

  4. android一个纠结的VFY错误

    08-16 09:06:45.018: W/dalvikvm(2286): VFY: unable to resolve static method 3273: Lorg/slf4j/LoggerFa ...

  5. show processlist 执行状态分析

    Sleep状态 通常代表资源未释放,如果是通过连接池,sleep状态应该恒定在一定数量范围内 实战范例:因前端数据输出时(特别是输出到用户终端)未及时关闭数据库连接,导致因网络连接速度产生大量slee ...

  6. linux命令ps aux|grep xxx详解

    对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大的进程查看命令. 使用该命令 可以确定有哪些进程正在运 ...

  7. TSS 任务状态段

    TSS(任务状态段) 1 什么是TSS TSS 全称task state segment,是指在操作系统进程管理的过程中,任务(进程)切换时的任务现场信息.  2 TSS工作细节 TSS在任务切换过程 ...

  8. MemSQL Start[c]UP 2.0 - Round 2

    反正晚上睡不着,熬到1点开始做比赛,6个题目只做了2个题目,而且手速还比较慢,待提升空间还很大呢. A题:给定两个0,1串(len<=100000), 但是不是普通的二进制串,而是q进制串,q ...

  9. 获取GridView的BoundField值

    我们在使用 GridView 控件展示列表时,如果需要获取 BoundField 的值,可以使用 GridView1.Rows[i].Cells[j].Text. 举个例子: 前台: <html ...

  10. cyg_flag 系列函数

    http://blog.csdn.net/mrwangwang/article/details/7954236 cyg_flag_init Name: cyg_flag_init ( ) - init ...