zoukankan      html  css  js  c++  java
  • Spring4分别整合mongo2.X和3.0

    1.pom文件添加:

    <dependency>
        <groupId>org.mongodb</groupId>
         <artifactId>mongo-java-driver</artifactId>
         <version>2.14.2</version>
    </dependency>
            
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.7.2.RELEASE</version>
    </dependency>

    2.Spring配置文件的头信息,其中只需关注mongo的三行就行:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:mvc="http://www.springframework.org/schema/mvc" 
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop" 
        xmlns:tx="http://www.springframework.org/schema/tx"
        
        xmlns:mongo="http://www.springframework.org/schema/data/mongo"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            
            http://www.springframework.org/schema/data/mongo 
            http://www.springframework.org/schema/data/mongo/spring-mongo.xsd
            http://www.springframework.org/schema/aop 
            http://www.springframework.org/schema/aop/spring-aop.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd
            ">


         <mongo:mongo-client host="172.16.10.247" port="27017" id="mongo">  
              <mongo:client-options write-concern="SAFE"/>  
          </mongo:mongo-client>  
          
          <mongo:db-factory  id="mongoDbFactory" dbname="db_mongo" mongo-ref="mongo" />  //注释,这句为了说明有账号密码而已,实际项目中没有这句<mongo:db-factory dbname="db_mongo" mongo-ref="mongo" username="qqw_reward" password="Reward_New001"/>  

          <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">  
            <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />  
          </bean>
    </beans>

    3.DAO层代码:

    package com.companyname.publicbase.dao;
    
    import java.util.List;
    
    import org.springframework.data.mongodb.core.query.Query;
    import org.springframework.data.mongodb.core.query.Update;
    
    public interface BaseMongoDao {
        
        public <T> List<T> find(Class<T> clazz); 
      
        public <T> T findOne(Query query, Class<T> clazz);
        
        public <T> void update(Query query, Update update, Class<T> T);
        
        //批量更新
        public <T> void updatemulti(Query query, Update update, Class<T> clazz); 
       
        public <T> void save(T entity);
      
        public <T> T findById(String id, Class<T> clazz);
      
          
        public <T> long count(Query query, Class<T> clazz);
          
        public <T> void remove(Query query, Class<T> clazz);
    }

    4.DAO实现类的代码:

    package com.companyname.publicbase.dao.impl;
    
    
    import java.util.List;
    
    import javax.annotation.Resource;
    
    import org.springframework.data.mongodb.core.MongoTemplate;
    import org.springframework.data.mongodb.core.query.Query;
    import org.springframework.stereotype.Repository;
    import org.springframework.transaction.annotation.Transactional;
    
    
    @Repository
    @Transactional(rollbackFor=Exception.class) 
    public class BaseMongoDaoImpl<T>{  
        
        
        
        /*@Resource
        MongoTemplate mongoTemplate;
        public List<T> find(Query query, Class<T> clazz) {  
            return (List<T>) mongoTemplate.find(query, clazz);  
        }*/
        
        @Resource
        private MongoTemplate mongoTemplate;
        public List<T> find(Query query, Class<T> clazz) {  
            System.out.println(mongoTemplate);
            return (List<T>) mongoTemplate.find(query, clazz);  
        } 
          
         /** 
         * spring mongodb 集成操作类  
         */  
        /*@Autowired private MongoTemplate mongoTemplate;  
        
        public List<T> find(Query query, Class<T> clazz) {  
            return (List<T>) mongoTemplate.find(query, clazz);  
        } */
      
        /*public T findOne(Query query, Class<T> clazz) {  
            return (T) mongoTemplate.findOne(query, clazz);  
        } 
      
        public void update(Query query, Update update, Class<T> clazz) {  
            mongoTemplate.findAndModify(query, update, clazz);  
        } 
        
        //批量更新
        public void updatemulti(Query query, Update update, Class<T> clazz) {  
            mongoTemplate.updateMulti(query, update, clazz);  
        } 
       
        public void save(T entity) {  
            mongoTemplate.insert(entity);  
        }  
      
        public T findById(String id, Class<T> clazz) {  
            return (T) mongoTemplate.findById(id, clazz);  
        }  
      
          
        public long count(Query query, Class<T> clazz){  
            return mongoTemplate.count(query, clazz);  
        }  
          
        public void remove(Query query, Class<T> clazz){  
             mongoTemplate.remove(query,  clazz);  
        } 
    */
    } 

    这样Spring4整合mongo3.X就结束了,如果报这个异常:NoClassDefFoundError: org/springframework/objenesis/ObjenesisStd

    就说明你用的不是spring4.x,到此恭喜你已经整合完毕了。

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------

    下面就是整合mongo2.x的内容了,这个spring3.2起码是没有问题的,来!下面开始整理:

    1.pom文件:

       <dependency>
          <groupId>org.mongodb</groupId>
          <artifactId>mongo-java-driver</artifactId>
          <version>2.12.4</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework.data</groupId>
          <artifactId>spring-data-mongodb</artifactId>
          <version>1.6.1.RELEASE</version>
        </dependency>

    2.Spring文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:mvc="http://www.springframework.org/schema/mvc" 
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop" 
        xmlns:tx="http://www.springframework.org/schema/tx"
        
        xmlns:mongo="http://www.springframework.org/schema/data/mongo"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            
            http://www.springframework.org/schema/data/mongo   
            http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
            
            http://www.springframework.org/schema/aop 
            http://www.springframework.org/schema/aop/spring-aop.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd
            ">

     <mongo:mongo host="172.16.10.247" port="27017"/>
      <mongo:db-factory dbname="db_mongo" mongo-ref="mongo" username="qqw_reward" password="Reward_New001"/>

      <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
      </bean>
    </beans>

    3.java调用就跟上面一样了,dao和实现类都是一样的,就这样两套都整理完了,有什么要完善的再回来改,之前测试过是没有问题的,百分百能跑,

    也可以看看这个怎么写的http://blog.csdn.net/chenpy/article/details/50458787

    spring集成mongodb
  • 相关阅读:
    STM32-串口通信
    STM32-系统计时器(systick)
    字符串操作常用的函数
    基本MarkDown语法
    结构
    python入门
    贪心算法小结
    POJ1631_高深DP
    POJ3046ANT_COUNTING
    POJ1742coins
  • 原文地址:https://www.cnblogs.com/yinlixin/p/5643939.html
Copyright © 2011-2022 走看看