MongoDB和Spring整合

MongoDB和Spring整合,根据开发文档找到对应的版本 
Spring Data Document 1.x binaries requires JDK level 6.0 and above, and Spring Framework 3.0.x and above.
In terms of document stores, MongoDB preferably version 1.6.5 or later or CouchDB 1.0.1 or later are required. 
根据官方文档知道Spring必须是3.0.x或以上的版本,MongoDB必须是1.6.5以上的版本才行。 
要想整合Spring和Mongodb必须下载相应的jar,这里主要是用到两种jar一种是spring-data-document和spring-data-commons两种类型的jar但是两种类型的jar版本必须匹配以免引起jar的冲突因为commons后面的版本jar目录有所改变所有版本必须要对应好下面是jar下载地址 
http://www.springsource.org/spring-data/mongodb 
http://www.springsource.org/spring-data/commons 


下面是我下载的jar还有就是添加mongodb java驱动包,spring jar添加我就不多说了 
Spring配置文件如下: 
Java代码   收藏代码
  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:context="http://www.springframework.org/schema/context"  
  5.           xmlns:mongo="http://www.springframework.org/schema/data/mongo"  
  6.           xsi:schemaLocation=  
  7.           "http://www.springframework.org/schema/context  
  8.           http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  9.           http://www.springframework.org/schema/data/mongo  
  10.           http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd  
  11.           http://www.springframework.org/schema/beans  
  12.           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
  13.    
  14.   <mongo:mongo host="localhost" port="27017">   
  15.   </mongo:mongo>  
  16.     
  17.   <bean id="mongoTemplate" class="org.springframework.data.document.mongodb.MongoTemplate">  
  18.     <constructor-arg ref="mongo"/>  
  19.     <constructor-arg name="databaseName" value="db"/>  
  20.     <constructor-arg name="defaultCollectionName" value="person" />  
  21.   </bean>  
  22.     <bean id="personRepository" class="com.mongo.repository.PersonRepository">  
  23.         <property name="mongoTemplate" ref="mongoTemplate"></property>  
  24.     </bean>  
  25.  </beans>  

添加实体类: 
Java代码   收藏代码
  1. package com.mongo.entity;  
  2.   
  3.   
  4. public class Person {  
  5.     private String id;  
  6.     private String name;  
  7.     private int age;  
  8.   
  9.     public Person(String name, int age) {  
  10.         this.name = name;  
  11.         this.age = age;  
  12.     }  
  13.       
  14.     public Person(){  
  15.           
  16.     }  
  17.       
  18.     public Person(String id, String name, int age) {  
  19.         this.id = id;  
  20.         this.name = name;  
  21.         this.age = age;  
  22.     }  
  23.   
  24.     public String getId() {  
  25.         return id;  
  26.     }  
  27.   
  28.     public void setId(String id) {  
  29.         this.id = id;  
  30.     }  
  31.   
  32.     public String getName() {  
  33.         return name;  
  34.     }  
  35.   
  36.     public void setName(String name) {  
  37.         this.name = name;  
  38.     }  
  39.   
  40.     public int getAge() {  
  41.         return age;  
  42.     }  
  43.   
  44.     public void setAge(int age) {  
  45.         this.age = age;  
  46.     }  
  47.   
  48.     @Override  
  49.     public String toString() {  
  50.         return "Person[id="+id+",name="+name+",age="+age+"]";  
  51.     }  
  52.   
  53. }  

定义增删查改的接口 
Java代码   收藏代码
  1. package com.mongo.intf;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.mongo.entity.Person;  
  6.   
  7. public interface AbstractRepository {  
  8.     public void insert(Person person);  
  9.     public Person findOne(String id);  
  10.     public List<Person> findAll();  
  11.     public List<Person> findByRegex(String regex);  
  12.     public void removeOne(String id);  
  13.     public void removeAll();  
  14.     public void findAndModify(String id);  
  15. }  

实现接口类: 
Java代码   收藏代码
  1. package com.mongo.repository;  
  2.   
  3. import java.util.List;  
  4. import java.util.regex.Pattern;  
  5.   
  6. import org.springframework.data.document.mongodb.MongoTemplate;  
  7. import org.springframework.data.document.mongodb.query.Criteria;  
  8. import org.springframework.data.document.mongodb.query.Query;  
  9. import org.springframework.data.document.mongodb.query.Update;  
  10.   
  11. import com.mongo.entity.Person;  
  12. import com.mongo.intf.AbstractRepository;  
  13.   
  14. public class PersonRepository implements AbstractRepository{  
  15.   
  16.     private MongoTemplate mongoTemplate;  
  17.   
  18.     @Override  
  19.     public List<Person> findAll() {  
  20.         return getMongoTemplate().find(new Query(), Person.class);  
  21.     }  
  22.   
  23.     @Override  
  24.     public void findAndModify(String id) {   
  25.         getMongoTemplate().updateFirst(new Query(Criteria.where("id").is(id)), new Update().inc("age"3));  
  26.     }  
  27.   
  28.     @Override  
  29.     public List<Person> findByRegex(String regex) {  
  30.         Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);  
  31.         Criteria criteria = new Criteria("name").regex(pattern.toString());  
  32.         return getMongoTemplate().find(new Query(criteria), Person.class);  
  33.     }  
  34.   
  35.     @Override  
  36.     public Person findOne(String id) {  
  37.         return getMongoTemplate().findOne(new Query(Criteria.where("id").is(id)), Person.class);  
  38.     }  
  39.   
  40.     @Override  
  41.     public void insert(Person person) {  
  42.         getMongoTemplate().insert(person);  
  43.     }  
  44.   
  45.     @Override  
  46.     public void removeAll() {  
  47.         List<Person> list = this.findAll();  
  48.         if(list != null){  
  49.             for(Person person : list){  
  50.                 getMongoTemplate().remove(person);  
  51.             }  
  52.         }  
  53.     }  
  54.   
  55.     @Override  
  56.     public void removeOne(String id){  
  57.         Criteria criteria = Criteria.where("id").in(id);  
  58.         if(criteria == null){  
  59.              Query query = new Query(criteria);  
  60.              if(query != null && getMongoTemplate().findOne(query, Person.class) != null)  
  61.                  getMongoTemplate().remove(getMongoTemplate().findOne(query, Person.class));  
  62.         }  
  63.     }  
  64.   
  65.     public MongoTemplate getMongoTemplate() {  
  66.         return mongoTemplate;  
  67.     }  
  68.   
  69.     public void setMongoTemplate(MongoTemplate mongoTemplate) {  
  70.         this.mongoTemplate = mongoTemplate;  
  71.     }  
  72.       
  73. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值