zoukankan      html  css  js  c++  java
  • MongoDB学习(四)SpringData与MongoDB集成

    1、配置文件mongo-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mongo="http://www.springframework.org/schema/data/mongo"
        xsi:schemaLocation="http://www.springframework.org/schema/context
              http://www.springframework.org/schema/context/spring-context-3.0.xsd
              http://www.springframework.org/schema/data/mongo
              http://www.springframework.org/schema/data/mongo/spring-mongo-1.1.xsd
              http://www.springframework.org/schema/beans
              http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    
        <!-- 定义mongo对象,相关ip地址和端口 -->
        <mongo:mongo host="localhost" port="27017" />
        
        <!-- mongo工厂,通过它来取得mongo实例  -->
        <mongo:db-factory dbname="mongodemo" />
        
        
        <bean id="mappingContext"
            class="org.springframework.data.mongodb.core.mapping.MongoMappingContext"></bean>
    
        <bean id="defaultMongoTypeMapper"
            class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">
            <constructor-arg name="typeKey" value="null" />
        </bean>
    
        <!-- MongoMappingConverter类起到实体映射的作用,通过注释把java类转换为mongodb的文档。 -->
        <bean id="mappingMongoConverter"
            class="org.springframework.data.mongodb.core.convert.MappingMongoConverter">
            <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
            <constructor-arg name="mappingContext" ref="mappingContext" />
            <property name="typeMapper" ref="defaultMongoTypeMapper" />
        </bean>
    
        <!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 -->
        <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
            <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
            <constructor-arg name="mongoConverter" ref="mappingMongoConverter" />
        </bean>
    
    </beans>

    2、实体对象User.java

    View Code
    public class User {
        private String uname;
        private String upwd;
        
        public User(String uname,String upwd){
            this.uname=uname;
            this.upwd=upwd;
        }
        public String getUname() {
            return uname;
        }
        public void setUname(String uname) {
            this.uname = uname;
        }
        public String getUpwd() {
            return upwd;
        }
        public void setUpwd(String upwd) {
            this.upwd = upwd;
        }
        public String toString() {
            return "[用户信息:UName:"+uname+"\tUpwd:"+upwd+"]";
        }
        
    }

    3、工具类MongoUtil.java

    public class MongoUtil {
    
        static ApplicationContext ctx = new
        GenericXmlApplicationContext("mongo-config.xml");
    
        private static MongoOperations mongoOperations=null;
        
        /**
         * 获得MongoOperations对象(负责CRUD工作)
         * @return
         */
        public static MongoOperations getMongoOperation(){
            if(mongoOperations==null){
                mongoOperations = (MongoOperations) ctx.getBean("mongoTemplate");
            }
            return mongoOperations;
        }
        /**
         * 不定长度参数,构造查询条件
         * @param criterias
         * @return
         */
        public static Query setQuery(Criteria...criterias){
            Query query=new Query();
            
            for (int i = 0; i < criterias.length; i++) {
                query.addCriteria(criterias[i]);
            }
            return null;
            
        }
    }

    4、测试增删除查改CRUDTest.java

    package com.archie.test;
    
    
    import java.util.List;
    
    import org.springframework.data.mongodb.core.MongoOperations;
    import org.springframework.data.mongodb.core.query.Criteria;
    import org.springframework.data.mongodb.core.query.Query;
    import org.springframework.data.mongodb.core.query.Update;
    
    import com.archie.util.MongoUtil;
    import com.archie.vo.User;
    
    /**
     * 增删除查改测试
     * @author archie2010
     *
     * since 2013-3-22 下午04:43:39
     */
    public class CRUDTest {
    
        public static void main(String[] args) {
            
            MongoOperations mongoOperation=MongoUtil.getMongoOperation();
    User user
    = new User("archie", "123"); // 增加 mongoOperation.save(user, "users"); Criteria criteriaName=Criteria.where("uname").is("tom"); Criteria criteriaPwd=Criteria.where("upwd").is("123"); Query query=new Query(); query.addCriteria(criteriaName); query.addCriteria(criteriaPwd); User userLogin = mongoOperation.findOne(query, User.class, "users"); System.out.println(userLogin); // 查询 User savedUser = mongoOperation.findOne( new Query(Criteria.where("uname").is("archie")), User.class, "users"); System.out.println("savedUser : " + savedUser); // 更新 mongoOperation.updateMulti( new Query(Criteria.where("uname").is("archie")), Update.update("upwd", "1111111111"), "users"); // 查询 User updatedUser = mongoOperation.findOne( new Query(Criteria.where("uname").is("archie")), User.class, "users"); System.out.println("updatedUser : " + updatedUser); // 删除 mongoOperation.remove( new Query(Criteria.where("uname").is("archie")), "users"); // 查询集合 List<User> listUser = mongoOperation.findAll(User.class, "users"); System.out.println("Number of user = " + listUser.size()); } }

    Run:

    by archie
  • 相关阅读:
    Python与机器视觉(x)图像修复
    git push代码到远程新分支
    1024节日快乐~~~~
    【Python-GPU】GPU数据科学加速包——RAPIDS
    Echarts漂亮水滴图
    【深度学习】三维点云数据集总结
    poj 3273 Monthly Expense
    poj 3150 Cellular Automaton
    poj 3101 Astronomy
    hdu 4282 A very hard mathematic problem
  • 原文地址:https://www.cnblogs.com/archie2010/p/2829386.html
Copyright © 2011-2022 走看看