[Spring Data MongoDB]學習筆記--牛逼的MongoTemplate

來源:互聯網
上載者:User

標籤:style   blog   color   java   使用   os   io   資料   

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

@Configurationpublic 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);

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.