`

spring data for mongo

阅读更多
一、 运行环境:
MongoDB 1.4或更高版本
JDK1.5或更高版本
Sping3X或更高版本
二 、MAVEN配置

view sourceprint?1 <dependencies>  

2 <!-- other dependency elements omitted -->

3 <dependency>  

4 <groupId>org.springframework.data</groupId> 

5 <artifactId>spring-data-mongodb</artifactId> 

6 <version>1.1.0.RELEASE</version>  

7 </dependency>  

8 </dependencies>

三、spring 配置






view sourceprint?01 <!--指定配置文件地址-->

02  <context:property-placeholder location="classpath:/mongo.properties"/> 

03  <mongo:mongo id="mongo" host="${${mongo.host}}" port="${${mongo.port}}"> 

04  <mongo:options

05  connections-per-host="${${mongo.connectionsPerHost}}"

06  threads-allowed-to-block-for-connection-multiplier="${${mongo.threadsAllowedToBlockForConnectionMultiplier}}"

07  connect-timeout="${${mongo.connectTimeout}}"

08  max-wait-time="${${mongo.maxWaitTime}}"

09  auto-connect-retry="${${mongo.autoConnectRetry}}"

10  socket-keep-alive="${${mongo.socketKeepAlive}}"

11  socket-timeout="${${mongo.socketTimeout}}"

12  slave-ok="${${mongo.slaveOk}}"

13  write-number="1"

14  write-timeout="0"

15  write-fsync="true"

16  /> 

17  </mongo:mongo> 

18  <bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials"> 

19  <description>认证口令</description> 

20  <constructor-arg name="username" value="${${mongo.username}}"/> 

21  <constructor-arg name="password" value="${${mongo.password}}"/> 

22  </bean> 

23  <bean name="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> 

24  <constructor-arg name="mongo" ref="mongo"/> 

25  <constructor-arg name="userCredentials" ref="userCredentials"/> 

26  <constructor-arg name="databaseName" value="nq-s2s"/> 

27  </bean>

四、properties配置文件






view sourceprint?01 mongo.host=192.168.0.251 

02 mongo.port=27017 

03 mongo.connectionsPerHost=8 

04 mongo.threadsAllowedToBlockForConnectionMultiplier=4 

05 mongo.connectTimeout=1000 

06 mongo.maxWaitTime=1500 

07 mongo.autoConnectRetry=true 

08 mongo.socketKeepAlive=true 

09 mongo.socketTimeout=1500 

10 mongo.slaveOk=true 

11 mongo.username=*** 

12 mongo.password=*** 

13 mongo.dbname=***

五、JAVABEAN映射
AdCenter.java是一个标准的javaBean,采用注解的方式实现ORM映射。@Document、@Id是必要的两个注解,@Document映射Mongodb中的Collection,@Id映射指定Collection中的标识_id。

其他注解标签有:@Indexed索引、@Transient不映射此属性

view sourceprint?01 import org.springframework.data.annotation.Id; 

02 import org.springframework.data.mongodb.core.mapping.Document; 

03 @Document(collection = "adCenterDeduction") 

04 public class AdCenter { 

05  @Id

06  private String id; 

07  private String business; 

08  private String adCenter; 

09  private int deductNum; 

10  private int requestNum; 

11  public String getBusiness() { 

12  return business; 

13  } 

14  public void setBusiness(String business) { 

15  this.business = business; 

16  } 

17  public String getAdCenter() { 

18  return adCenter; 

19  } 

20  public void setAdCenter(String adCenter) { 

21  this.adCenter = adCenter; 

22  } 

23  public int getDeductNum() { 

24  return deductNum; 

25  } 

26  public void setDeductNum(int deductNum) { 

27  this.deductNum = deductNum; 

28  } 

29  public int getRequestNum() { 

30  return requestNum; 

31  } 

32  public void setRequestNum(int requestNum) { 

33  this.requestNum = requestNum; 

34  } 

35  public String getId() { 

36  return id; 

37  } 

38  public void setId(String id) { 

39  this.id = id; 

40  } 

41  public AdCenter() { 

42  } 

43  public AdCenter(String business, String adCenter, int deductNum, int requestNum) { 

44  this.business = business; 

45  this.adCenter = adCenter; 

46  this.deductNum = deductNum; 

47  this.requestNum = requestNum; 

48  } 

49  @Override

50  public String toString() { 

51  return "AdCenter [id=" + id + "business=" + business + ", adCenter=" + adCenter 

52  + ", deductNum=" + deductNum + ", requestNum=" + requestNum 

53  + "]"; 

54  } 

55 }

六、测试
view sourceprint?01 @Before

02  public void setUp() throws Exception { 

03  System.setProperty("NetQinServerType", "REL"); 

04  System.setProperty("NetQinServerLocation", "C"); 

05  } 

06  @Test

07  public void testAdCenter() throws UnknownHostException { 

08  ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-dao.xml&#25991;&#20214;"); 

09  MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate"); 

10  AdCenter adCenter = new AdCenter("ms","test",99,98); 

11  mongoOperation.insert(adCenter); 

12  assert adCenter.getId()!=null; 

13  System.out.println("newAdCenter:"+adCenter.toString()); 

14  Query query = new Query(Criteria.where("business").is(adCenter.getBusiness())); 

15  query.addCriteria(Criteria.where("adCenter").is(adCenter.getAdCenter())); 

16  //查找 

17  AdCenter exsitAdCenter = mongoOperation.findOne(query,AdCenter.class); 

18  assert exsitAdCenter!=null; 

19  System.out.println("exsitAdCenter:"+exsitAdCenter.toString()); 

20  //修改 

21  Update update = new Update().set("deductNum", 0); 

22  AdCenter modifyAd = mongoOperation.findAndModify(query, update, AdCenter.class); 

23  assert modifyAd.getDeductNum()==exsitAdCenter.getDeductNum(); 

24  System.out.println("beforeModifyAdCenter:"+exsitAdCenter.toString()); 

25  exsitAdCenter = mongoOperation.findOne(query,AdCenter.class); 

26  assert exsitAdCenter!=null&&exsitAdCenter.getDeductNum()==0; 

27  System.out.println("AfterModifyAdCenter:"+exsitAdCenter.toString()); 

28  //自增 

29  Update incUpdate = new Update().inc("deductNum", 1); 

30  mongoOperation.findAndModify(query, incUpdate, AdCenter.class); 

31  exsitAdCenter = mongoOperation.findOne(query,AdCenter.class); 

32  assert exsitAdCenter!=null&&exsitAdCenter.getDeductNum()==1; 

33  System.out.println("AfterIncAdCenter:"+exsitAdCenter.toString()); 

34  //删除 

35  mongoOperation.findAndRemove(query,AdCenter.class); 

36  }

七、测试输出
view sourceprint?1 newAdCenter:AdCenter [id=51b4581bb2e9ac8f62684366business=ms, adCenter=test, deductNum=99, requestNum=98] 

2 exsitAdCenter:AdCenter [id=51b4581bb2e9ac8f62684366business=ms, adCenter=test, deductNum=99, requestNum=98] 

3 beforeModifyAdCenter:AdCenter [id=51b4581bb2e9ac8f62684366business=ms, adCenter=test, deductNum=99, requestNum=98] 

4 AfterModifyAdCenter:AdCenter [id=51b4581bb2e9ac8f62684366business=ms, adCenter=test, deductNum=0, requestNum=98] 

5 AfterIncAdCenter:AdCenter [id=51b4581bb2e9ac8f62684366business=ms, adCenter=test, deductNum=1, requestNum=98]

八、参考文档
http://www.springsource.org/spring-data/mongodb
http://static.springsource.org/spring-data/mongodb/docs/current/reference/html/mongo.core.html#mongodb-connectors
http://static.springsource.org/spring-data/mongodb/docs/current/reference/html/
https://github.com/jreijn/spring-mongo-demo
分享到:
评论

相关推荐

    jastar-wang-demo-springdata-mongo-master.zip

    《Spring Data MongoDB实战:jastar-wang-demo-springdata-mongo深度解析》 在现代软件开发中,数据存储和管理扮演着至关重要的角色。随着NoSQL数据库的崛起,MongoDB以其灵活性、高性能和易扩展性赢得了广大开发者...

    spring-data-mongo配置成功

    《Spring Data MongoDB 配置详解》 在Java开发中,Spring框架因其强大的功能和灵活性而备受推崇,而在处理NoSQL数据库如MongoDB时,Spring Data MongoDB提供了便捷的接口和抽象,使得开发者能更加专注于业务逻辑,...

    spring-data-mongo-1.0.0.M5.zip

    spring-data-mongo-1.0.0.M5.zip 11年10月25号出来的 要配合spring-data-commons-1.2.0.M2.zip使用 不然底层会报错 spring-data-commons-1.2.0.M2.zip我已经传上去了~

    Spring Data MongoDB API(Spring Data MongoDB 开发文档).CHM

    Spring Data MongoDB API。 Spring Data MongoDB 开发文档。

    基于spring data mongo封装的API,让开发人员不用知道mongo

    通过定义接口并继承Spring Data提供的MongoRepository或SimpleMongoRepository,开发人员可以自动获得基本的查询方法。例如,我们可以创建一个UserRepository接口,包含如下的方法: ```java public interface ...

    Spring-data-mongo应用

    ### Spring-data-mongo应用知识点详解 #### 一、Spring Data MongoDB 概述 Spring Data MongoDB 是 Spring Data 项目的一部分,它提供了一套统一的数据访问抽象层,使得开发人员能够更加容易地进行数据库操作,而...

    Spring Data MongoDB中文文档

    - **MongoTemplate** 是 **Spring Data MongoDB** 提供的一个核心类,用于执行 MongoDB 的 CRUD 操作。 - 它提供了很多方便的方法来执行数据库操作,例如:`insert()`, `save()`, `findOne()`, `remove()`, `find()`...

    spring-mongo-data

    标题“spring-mongo-data”指的是Spring Data MongoDB项目,这是一个Java框架,用于简化与MongoDB数据库的交互。Spring Data是Spring框架的一部分,它提供了一种声明式的方法来处理各种数据存储,包括关系型数据库和...

    最新spring-data-mongo

    Spring Data Commons是一个核心模块,提供了与各种数据存储交互的一般机制,而`spring-data-mongo`则是专门针对MongoDB的数据访问层。这个组合使得Java开发者能够以一种声明式的方式处理MongoDB的数据操作,减少了...

    spring-data使用mongodbTemplate对MongoDB进行读写操作

    &lt;bean id="mongo" class="org.springframework.data.mongodb.core.MongoFactoryBean"&gt; ``` 一旦有了`MongoDBTemplate`,你就可以开始执行各种数据库操作了。比如,你可以使用`save()`方法保存一个对象到...

    spring-data-mongo-reference.pdf

    MongoTemplate 是 Spring Data MongoDB 中的核心类,用于执行各种数据库操作。通过 MongoTemplate,开发者可以进行文档的保存、更新、删除以及查询等操作。 #### 文档操作 Spring Data MongoDB 提供了丰富的文档...

    最新spring-data-mongo官方示例

    这个"最新spring-data-mongo官方示例"提供了丰富的代码示例,帮助开发者理解和掌握如何使用Spring Data MongoDB来操作非关系型数据库。 MongoDB是一个流行的NoSQL数据库,以其灵活性、高性能和强大的文档模型而受到...

    Spring-Data-MongoDB3.2

    Spring Data MongoDB提供了与MongoDB数据库交互的一系列抽象,包括MongoTemplate和Repository接口。通过这些接口,开发人员无需直接编写MongoDB的Java驱动程序代码,就能实现CRUD(创建、读取、更新和删除)操作,...

    springdata mongodb api文档

    文档中提到的MongoTemplate是SpringData MongoDB中的另一个重要组成部分。这是一个用于MongoDB操作的类,它封装了对MongoDB的基本CRUD(创建、读取、更新、删除)操作,并且提供了一个更加面向对象的接口,使得...

    spring-data-mongo-1.0.1.RELEASE.zip

    1. **MongoTemplate**:这是Spring Data MongoDB的主要操作类,它提供了对MongoDB的低级别API的封装,允许开发者执行基本的CRUD(创建、读取、更新、删除)操作以及更复杂的查询。 2. **MongoRepository**:这是一...

    spring_mongo项目示例

    总的来说,`spring_mongo`项目示例展示了如何利用Spring Data MongoDB将MongoDB数据库集成到Spring Boot应用中,实现高效的数据操作。这个示例涵盖了从配置数据库到创建RESTful API的完整流程,是学习和实践Spring与...

    尚硅谷SpringData视频观看下载链接

    SpringData是Spring框架的一个重要模块,它为Java开发者提供了丰富的数据访问抽象,简化了与各种数据存储系统的交互。本资源“尚硅谷SpringData视频”旨在帮助学习者深入理解和掌握SpringData的相关知识,通过视频...

    SpringData入门到精通

    SpringData是Spring框架的一个重要模块,它为Java开发者提供了与数据存储进行交互的简便方法,涵盖了关系型数据库、NoSQL数据库、搜索引擎等多种数据访问技术。本教程“SpringData入门到精通”将引领你逐步深入...

    spring集成mongo所需jar

    综上所述,"spring集成mongo所需jar"涉及的关键知识点包括Spring Data MongoDB框架、MongoDB Java驱动、项目构建工具(如Maven或Gradle)的依赖管理以及MongoDB的集成配置和操作。通过正确引入这些jar文件并按照上述...

    spring-data集成mongodb大数据量分页+自增id实现+MongodbPlugin集成

    skip随着数据量上去,分页性能极具下降,不推荐。这里使用spring-data-mongo实现的分页,并且实现了mongodb自增id(监听器方式)、也集成了轻量级插件MongodbPlugin,有需要的可以下载看看哦~

Global site tag (gtag.js) - Google Analytics