Spring 整合 MongoDB
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
启动 mongodb服务
./mongod -dbpath ../db/ -logpath ../logs/log -logappend -fork -port 27017
进入 mongodb,并新建一个数据库
如果没有安装mongodb的 请查看 http://blog.csdn.net/raccoon_hzy/article/details/53895807 mongodb的安装与部署
在eclipse中新建一个maven项目
1 构建pom文件
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.5.4.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.1.3.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.12</version>
</dependency>
2 新建一个mongodb.properties 文件
# \u6570\u636E\u5E93\u5730\u5740
mongodb.host=192.168.126.133
# \u6570\u636E\u5E93\u7AEF\u53E3
mongodb.port=27017
# \u591A\u8FDE\u63A5\u7684\u6570\u636E\u5E93
mongodb.dbname=test
3 新建applicationContex.xml文件
<!-- 连接mongodb -->
<mongo:mongo host="${mongodb.host}" port="${mongodb.port}" />
<!-- spring提供的mongodb的操作模板 -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongo" />
<!-- 所操作的数据库 -->
<constructor-arg name="databaseName" value="${mongodb.dbname}" />
</bean>
4 新建测试类 MongoDBTest.class
package com.chainhu.test;
import java.util.List;
import javax.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
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.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.chainhu.domain.Customer;
@RunWith(value=SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext.xml"})
public class MongoTest {
@Resource
private MongoTemplate mongoTemplate;
@Test
public void mongoTest(){
Customer customer = new Customer();
customer.setId(2);
customer.setUsername("xiaoli");
customer.setGender("nv");
mongoTemplate.insert(customer);
}
@Test
public void findAll(){
List<Customer> list = mongoTemplate.find(new Query(), Customer.class);
for(Customer c :list){
System.out.println(c);
}
}
@Test
public void findOne(){
Customer c = mongoTemplate.findOne(new Query(Criteria.where("id").is("2")), Customer.class);
System.out.println(c);
}
@Test
public void removeOne(){
// 先查后删
Query query = new Query(Criteria.where("id").is(2));
if(query != null){
Customer c = mongoTemplate.findOne(query, Customer.class);
if(c != null){
mongoTemplate.remove(c);
}
}
}
@Test
public void removeAll(){
List<Customer> list = mongoTemplate.find(new Query(), Customer.class);
if(list != null && list.size()>0){
int count = 0;
for(Customer c : list){
mongoTemplate.remove(c);
count++;
}
System.out.println("共删除:"+count);
}
}
}
运行 mongoTest 方法后在运行 findAll方法
此时 spring整合mongodb完成!