Spring Data MongoDB简单的增删改查
2015-10-17 22:48
609 查看
今天看了 Spring Data MongoDB 的官方文档自己实验性的做了个小例子。
– 简单的测试类
– 两个配置文件
–pom.xml文件
项目结构
具体代码
– 简单的Bean类package org.spring.mongodb.example.bean; /** * * 2015-10-17 * @category 直接复制的官网上的类 * @author wangpeng * */ public class Person { private String id; private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getId() { return id; } public String getName() { return name; } public int getAge() { return age; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age + "]"; } }
package org.spring.mongodb.example.config; import org.springframework.beans.factory.FactoryBean; import org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; import org.springframework.data.mongodb.core.convert.MongoTypeMapper; public class MyccniceMongoConverterFactoryBean implements FactoryBean<MappingMongoConverter> { private MappingMongoConverter converter; public MyccniceMongoConverterFactoryBean(MappingMongoConverter converter) { this.converter = converter; } @Override public MappingMongoConverter getObject() throws Exception { // 参数是Type在MongoDB中名字. // 设置为null的话就不会在保存时自动添加_class属性. // Spring默认为 DEFAULT_TYPE_KEY = "_class"; MongoTypeMapper typeMapper = new DefaultMongoTypeMapper(null); converter.setTypeMapper(typeMapper); return converter; } @Override public Class<?> getObjectType() { return MappingMongoConverter.class; } @Override public boolean isSingleton() { return true; } }
– 简单的测试类
package org.spring.mongodb.example; import org.junit.Before; import org.junit.runner.RunWith; import org.spring.mongodb.example.bean.Person; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * * 2015-10-17 * @author wangpeng * */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations="classpath:spring-db.xml") public class BaseSpringTest { protected Person person; @Before public void initApplicationContext(){ person = new Person("Joe", 34); } }
package org.spring.mongodb.example; import static org.springframework.data.mongodb.core.query.Criteria.where; import static org.springframework.data.mongodb.core.query.Query.query; import static org.springframework.data.mongodb.core.query.Update.update; import java.util.List; import org.junit.Test; import org.spring.mongodb.example.bean.Person; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; /** * * 2015-10-17 * @category 测试SpringMongoDb增删改查 * @author wangpeng * */ public class MongoDbTest extends BaseSpringTest{ @Autowired private MongoTemplate mongoTemplate; @Test public void saveTest() { mongoTemplate.save(person); } @Test public void findTest() { Person p = mongoTemplate.findOne(query(where("name").is("Joe")), Person.class); System.out.println(p); } @Test public void updateTest() { mongoTemplate.updateFirst(query(where("name").is("Joe")), update("age", 35), Person.class); Person p = mongoTemplate.findOne(query(where("name").is("Joe")), Person.class); System.out.println(p); } @Test public void removeTest() { List<Person> people = mongoTemplate.findAll(Person.class); System.out.println(people.size()); Person p = mongoTemplate.findOne(query(where("name").is("Joe")), Person.class); mongoTemplate.remove(p); people = mongoTemplate.findAll(Person.class); System.out.println(people.size()); mongoTemplate.dropCollection(Person.class); } }
– 两个配置文件
host = 118.123.8.140 port = 12345 connections-per-host = 8 connection-multiplier = 4 connect-timeout = 1000 max-wait-time = 1500 auto-connect-retry = true socket-keep-alive = true socket-timeout = 1500 slave-ok = ture write-number = 1 write-timeout = 0 write-fsync = true
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mongo="http://www.springframework.org/schema/data/mongo" xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <context:component-scan base-package="org.spring.mongodb.example" /> <context:property-placeholder location="classpath:db.properties" /> <mongo:mongo id="mongo" host="${host}" port="${port}"> <mongo:options connections-per-host="${connections-per-host}" threads-allowed-to-block-for-connection-multiplier="${connection-multiplier}" connect-timeout="${connect-timeout}" max-wait-time="${max-wait-time}" auto-connect-retry="${auto-connect-retry}" socket-keep-alive="${socket-keep-alive}" socket-timeout="${socket-timeout}" slave-ok="true" write-number="${write-number}" write-timeout="${write-timeout}" write-fsync="${write-fsync}" /> </mongo:mongo> <mongo:db-factory id="mongoDbFactory" dbname="imooc" mongo-ref="mongo" /> <mongo:mapping-converter id="mongoConverter" /> <bean id="noClassMongoConverter" class="org.spring.mongodb.example.config.MyccniceMongoConverterFactoryBean"> <constructor-arg name="converter" ref="mongoConverter" /> </bean> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /> <constructor-arg name="mongoConverter" ref="noClassMongoConverter" /> </bean> </beans>
–pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.myccnice</groupId> <artifactId>lottery</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>lottery Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <jdk.version>1.7</jdk.version> <spring.version>4.0.9.RELEASE</spring.version> <spring.mongodb.version>1.7.2.RELEASE</spring.mongodb.version> </properties> <dependencies> <!-- test beggin --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> <!-- test end --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>${spring.mongodb.version}</version> </dependency> </dependencies> <repositories> <repository> <id>spring-milestone</id> <name>Spring Maven MILESTONE Repository</name> <url>http://repo.spring.io/libs-milestone</url> </repository> </repositories> </project>
相关文章推荐
- MongoDB安装指南
- mongodb数据库collection的增长的监控
- 浅析mongodb数据库链接
- 浅析mongodb主从库的配置
- Linux 安装MongoDB 2.6.5
- 在linux下手动安装mongodb
- 【未完】mongodb安装+副本集搭建+数据导入
- mongodb设置数据库用户,权限,java mongodb driver3.0驱动用户验证
- 在linux上用yum安装和卸载mongodb 3.0数据库
- AngularJS+Satellizer+Node.js+MongoDB
- MongoDB安装及配置成服务
- ES-MongoDB学习2_mongodb-river-elasticsearch源码解析
- django 操作mongoDB Mongoengine教程(5)——信号
- MongoDB的文档、集合和数据库
- django 操作mongoDB Mongoengine教程(4)——文件存储
- django 操作mongoDB Mongoengine教程(3)——数据查询
- django 操作mongoDB Mongoengine教程(2)——文档模式
- django 操作mongoDB Mongoengine教程(1)——概述
- MongoDB 学习
- mongodb Cloud Manager (原mongodb mms) 监控代理安装设置图文教程