Spring Data for MongoDB 是Spring Data项目的一部分,旨在为新的数据存储提供一种熟悉且一致的基于Spring的编程模型,同时保留特定于存储的功能和功能。Spring Data提供了诸多数据库操作模板,如:reidstemplate、jdbctemplate等。
文章简单记录使用mongotemplate做crud功能。阅读文章你需要对maven、mongodb、springboot有一定的了解。
以下代码在springboot1.5.4测试通过。
首先在pom.xml中添加mongo依赖,如下代码,
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
接着在application.propertis中,添加mongo配置,如下
spring.data.mongodb.uri=mongodb://10.99.70.53:32774 spring.data.mongodb.database=quezon
更多关于spring boot mongodb配置如下,可以参考 http://docs.spring.io/spring-boot/docs/1.5.4.RELEASE/reference/htmlsingle/ 获得更多内容
# MONGODB (MongoProperties) spring.data.mongodb.authentication-database= # Authentication database name. spring.data.mongodb.database=test # Database name. spring.data.mongodb.field-naming-strategy= # Fully qualified name of the FieldNamingStrategy to use. spring.data.mongodb.grid-fs-database= # GridFS database name. spring.data.mongodb.host=localhost # Mongo server host. Cannot be set with uri. spring.data.mongodb.password= # Login password of the mongo server. Cannot be set with uri. spring.data.mongodb.port=27017 # Mongo server port. Cannot be set with uri. spring.data.mongodb.repositories.enabled=true # Enable Mongo repositories. spring.data.mongodb.uri=mongodb://localhost/test # Mongo database URI. Cannot be set with host, port and credentials. spring.data.mongodb.username= # Login user of the mongo server. Cannot be set with uri.
接着编写curd代码,如下,
StudentDO.java
package com.eju.ess.bean;
import java.io.Serializable;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.Data;
@Data
@Document(collection="student")
public class StudentDO implements Serializable {
private String name;
private String sex;
private Integer age;
@Override
public String toString() {
return "StudentDO [name=" + name + ", sex=" + sex + ", age=" + age + "]";
}
public StudentDO(String name, String sex, Integer age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
}
}
MongoTest.java
package com.eju.ess;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
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 org.springframework.test.context.junit4.SpringRunner;
import com.eju.ess.bean.StudentDO;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@RunWith(SpringRunner.class)
/*
* WebApp测试,需要将下面注释去掉
*
* //@SpringBootTest(classes=Startup.class,webEnvironment =
* WebEnvironment.DEFINED_PORT) /* 非WebApp测试,需要将下面注释去掉
*/
@SpringBootTest(classes = Startup.class)
public class MongoTest {
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void test1() {
mongoTemplate.save(new StudentDO("张三", "男", 23));
}
@Test
public void test2() {
StudentDO studentDO = mongoTemplate.findOne(Query.query(new Criteria().where("age").is(23)), StudentDO.class);
log.info(">> {}",studentDO.toString());
}
@Test
public void test3() {
mongoTemplate.updateFirst(
Query.query(new Criteria().where("age").is(23)),
new Update().set("name", "李四"),
StudentDO.class);
}
@Test
public void test4() {
mongoTemplate.remove(Query.query(new Criteria().where("age").is(23)),StudentDO.class );
}
}