標籤: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);