java操作Mongodb,Spring-data-mongo简单配置
2016-09-21 19:55
691 查看
这段时间一直在用mongodb,但是却没有配置过Spring操作mongodb。今天配了下,顺便把代码贴出来。官方文档:http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongodb-connectorsmongodata.xml
<?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/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <context:component-scan base-package="dao"/> <!-- 一个本机的mongo --> <mongo:mongo id="localMongo" host="127.0.0.1" port="27017"/> <mongo:db-factory id="localMongoDbFactory" dbname="person" mongo-ref="localMongo"/> <bean id="localMongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg name="mongoDbFactory" ref="localMongoDbFactory"/> </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>demo</groupId> <artifactId>demo</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>demo Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <spring.version>4.1.6.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- jackson --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.3</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <!-- 別用1.9版本。。。会报没有getMergedAnnotationAttributes --> <version>1.7.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</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-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> </dependencies> </project>
/** * */ package demo; 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.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.mongodb.DBCollection; import com.mongodb.DBCursor; /** * @author * */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:mongodata.xml"}) public class TestSpringDataMongoDB { @Resource private MongoTemplate localMongoTemplate; @Test public void testMongoTemplate(){ DBCollection personCon =localMongoTemplate.getCollection("person");//表名,如果没有该表,请用createCollection("person") DBCursor cursor=personCon.find().limit(2); while(cursor.hasNext()){ System.out.println(cursor.next()); } } }得到mongoTemplate后就很容易操作了, 增删改查跟在mongo命令窗口差不多。数据库、表、表结构查询效果附上官方的一些例子:
查找:
BasicQuery query = new BasicQuery("{ age : { $lt : 50 }, accounts.balance : { $gt : 1000.00 }}"); List<Person> result = mongoTemplate.find(query, Person.class);
List<Person> result = mongoTemplate.find(query(where("age").lt(50) .and("accounts.balance").gt(1000.00d)), Person.class);
Point point = new Point(-73.99171, 40.738868); List<Venue> venues = template.find(new Query( Criteria.where("location").nearSphere(point).maxDistance(0.003712240453784)), Venue.class);
Query query = TextQuery.searching(new TextCriteria().matchingAny("coffee", "cake")).sortByScore();List<Document> page = template.find(query, Document.class);更新
WriteResult wr = mongoTemplate.updateMulti(new Query(where("accounts.accountType").is(Account.Type.SAVINGS)),new Update().inc("accounts.$.balance", 50.00), Account.class);
插入
Person p = new Person("Bob", 33);mongoTemplate.insert(p);Person qp = mongoTemplate.findOne(query(where("age").is(33)), Person.class);
相关文章推荐
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- 【MongoDB】spring-data-mongo配置
- spring-data-mongodb 配置和使用多个 mongoTemplate
- java用spring-data-mongodb操作mongodb的时间问题
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- Spring Data MongoDB <mongo:mongo-client … />配置
- java 操作mongoDB(DBobject,非spring data)
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- springdata+maven配置和简单的操作
- [MongoDB] Spring Data Mongo
- Spring-data + MongoDb简单环境搭建
- SpringMVC Interceptor 配置由简单到复杂及相关异常解决办法,记录用户操作日志
- 使用springdata操作mongodb的例子
- spring-data-mongodb一个系统xml文件里面配置两个数据源
- [Spring Data MongoDB]学习笔记--注册一个Mongo实例
- 拥抱NoSQL--谈Spring Data MongoDB的简单使用
- spring-data-redis简单操作