zoukankan      html  css  js  c++  java
  • [Spring Data MongoDB]学习笔记--牛逼的MongoTemplate

    MongoTemplate是数据库和代码之间的接口,对数据库的操作都在它里面。

    注:MongoTemplate是线程安全的。

    MongoTemplate实现了interface MongoOperations,一般推荐使用MongoOperations来进行相关的操作。

    MongoOperations mongoOps = new MongoTemplate(new SimpleMongoDbFactory(new Mongo(), "database"));

    MongoDB documents和domain classes之间的映射关系是通过实现了MongoConverter这个interface的类来实现的。

    默认提供了两个SimpleMappingConverter(default) 和 MongoMappingConverter,但也可以自己定义。

    如何创建一个MongoTemplate实例?

    1. 通过java code

    @Configuration
    public class AppConfig {
    
        public @Bean Mongo mongo() throws Exception {
            return new Mongo("localhost");
        }
    
        public @Bean MongoTemplate mongoTemplate() throws Exception {
            return new MongoTemplate(mongo(), "mydatabase");//还有其它的初始化方法。
        }
    }

    2. 通过xml

      <mongo:mongo host="localhost" port="27017"/>
      
      <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongo"/>
        <constructor-arg name="databaseName" value="geospatial"/>
      </bean>

    使用的简单例子

    MongoOperations mongoOps = new MongoTemplate(new SimpleMongoDbFactory(new Mongo(), "database"));
    
        Person p = new Person("Joe", 34);
        
        // Insert is used to initially store the object into the database.
        mongoOps.insert(p);
        log.info("Insert: " + p);
        
        // Find
        p = mongoOps.findById(p.getId(), Person.class);    
        log.info("Found: " + p);
        
        // Update
        mongoOps.updateFirst(query(where("name").is("Joe")), update("age", 35), Person.class);    
        p = mongoOps.findOne(query(where("name").is("Joe")), Person.class);
        log.info("Updated: " + p);
        
        // Delete
        mongoOps.remove(p);
        
        // Check that deletion worked
        List<Person> people =  mongoOps.findAll(Person.class);
        log.info("Number of people = : " + people.size());
    
        
        mongoOps.dropCollection(Person.class);
  • 相关阅读:
    个人网站上线
    从零开始学C++之虚函数与多态(二):纯虚函数、抽象类、虚析构函数
    Triangle
    Hard problem
    [置顶] Android AlarmManager实现不间断轮询服务
    Python学习入门基础教程(learning Python)--5.1 Python下文件处理基本过程
    编程之美 裴波那楔数列
    130712周赛(CF)
    Python学习入门基础教程(learning Python)--5.2 Python读文件基础
    phantomjs
  • 原文地址:https://www.cnblogs.com/lemonbar/p/3893458.html
Copyright © 2011-2022 走看看