1.导入相关jar
<properties>
<spring.version>4.2.3.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.8.0</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.10.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
</dependency>
</dependencies>
2.创建spring-mongo配置文件
<!--连接mongodb-->
<mongo:mongo id="mongo" host="127.0.0.1" port="27017"></mongo:mongo>
<!-- mongoTemplate 对mongo一个封装 ,通过构造器注入-->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongo"></constructor-arg>
<constructor-arg name="databaseName" value="数据库名"></constructor-arg>
</bean>
3.创建实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document //代表mongodb的实体
public class Car {
@Id //主键
private String id;
private String name;
private Date time;
}
4.创建测试类(保存方法)
第一种方式:spring整各Junit测试
相关代码:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-mongo.xml")
public class MongoTest{
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void test1(){
Car c = new Car();
c.setName("布加迪威龙");
c.setTime(new Date());
mongoTemplate.save(c);
}
第二种方式
相关代码:
public class MongoTest{
private MongoTemplate mongoTemplate;
@Before
public void before(){
ClassPathXmlApplicationContext mo = new ClassPathXmlApplicationContext("classpath:spring-mongo.xml");
mongoTemplate=(MongoTemplate) mo.getBean("mongoTemplate");
}
@Test
public void test2(){
Car a = new Car();
a.setName("法拉利");
a.setTime(new Date());
a.setPrice(78);
mongoTemplate.save(a);
}
5.查询所有
6.条件查询
- Query导包
- 单查询相关代码:
/**
* 单条件查询
*/
@Test
public void test4(){
Query query = new Query();
Criteria where = new Criteria();
/* where.and("price").lt(78); //查询价格小于78
where.and("price").is(78);//查询价格是78*/
where.and("price").lte(78);//查询小于等于78
query.addCriteria(where);
List<Car> cars = mongoTemplate.find(query, Car.class);
System.out.println(cars);
}
- 多条件查询代码:
/**
* 多条件查询
*/
@Test
public void test5(){
Query query = new Query();
Criteria where1= new Criteria();
where1.and("price").lte(78);
Criteria where2= new Criteria();
where2.and("price").gte(50);
query.addCriteria(new Criteria().andOperator(where1,where2));
List<Car> cars = mongoTemplate.find(query, Car.class);
System.out.println(cars);
}
- 分页
/**
* 分页查询
*/
@Test
public void test6(){
int page=1; //当前页
int rows=3; //每页条数
Query query = new Query();
query.skip((page-1)*rows).limit(rows);
List<Car> cars = mongoTemplate.find(query, Car.class);
System.out.println(cars);
}
7.修改
/**
* 修改
*/
@Test
public void test7(){
Query query = new Query();
Criteria where = new Criteria();
where.and("price").is(100);
query.addCriteria(where);
Update update = new Update();
update.set("price",10);
mongoTemplate.updateFirst(query,update,Car.class); //修改第一条符合的数据
// mongoTemplate.updateMulti(query,update,Car.class);//修改所有符合的数据
}
8.删除
/**
* 删除
*/
@Test
public void test8(){
Query query = new Query();
Criteria where = new Criteria();
where.and("price").is(10);
query.addCriteria(where);
mongoTemplate.remove(query,Car.class);
}