近期装了个mongodb,试试。发现很多网上找来的列子不对自己。
首先工程以来的jar包
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.0.3.RELEASE</version>
</dependency>
简单的配置文件
<?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">
<mongo:mongo host="10.211.55.10" port="27017"/>
<bean id="mongoOps" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongo"/>
<constructor-arg name="databaseName" value="test"/>
</bean>
</beans>
因为倒入了他自己的xsd文件,所以可以看下mongo的内容实际上是MongoFactoryBean
<xsd:element name="mongo" type="mongoType">
<xsd:annotation>
<xsd:documentation source="org.springframework.data.mongodb.core.core.MongoFactoryBean"><![CDATA[
Defines a Mongo instance used for accessing MongoDB'.
]]></xsd:documentation>
<xsd:appinfo>
<tool:annotation>
<tool:exports type="com.mongodb.Mongo"/>
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
然后看下MongoTemplate类的构造函数,就清楚了。
public MongoTemplate(Mongo mongo, String databaseName) {
this(new SimpleMongoDbFactory(mongo, databaseName), null);
}
测试类的基类;
import org.apache.log4j.Logger;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* User: zhangtan
* Date: 2012-07-28
* Time: 11:14
*/
public class BaseTestCase {
protected Logger log = Logger.getLogger(this.getClass());
protected static ApplicationContext appContext;
@BeforeClass
public static void setUp() throws Exception {
try {
long start = System.currentTimeMillis();
System.out.println("开始加载配置文件");
appContext = new ClassPathXmlApplicationContext(new String[]{"spring-config.xml"});
System.out.println("配置文件加载结束" + (System.currentTimeMillis() - start));
} catch (Exception e) {
e.printStackTrace();
}
}
protected boolean setProtected() {
return false;
}
@Before
public void autoSetBean() {
appContext.getAutowireCapableBeanFactory().autowireBeanProperties(this, DefaultListableBeanFactory.AUTOWIRE_BY_NAME, false);
}
@AfterClass
public static void tearDown() throws Exception {
}
}
增删改查基本操作
package dao;
import com.mongodb.DBCollection;
import com.mongodb.WriteResult;
import com.zt.todo.log.UserLog;
import org.junit.Test;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import java.net.UnknownHostException;
import static org.springframework.data.mongodb.core.query.Criteria.where;
/**
* Created by IntelliJ IDEA.
* User: zhangtan
* Date: 12-7-28
* Time: 11:19
*/
public class MongoTest extends BaseTestCase {
private MongoTemplate mongoOps;
@Test
public void insertLog() throws UnknownHostException {
UserLog userLog = new UserLog("zt", "吃饭");
mongoOps.insert(new UserLog("zt", "我今天吃饭了"));
// mongoOps.dropCollection("person");
//save
mongoOps.save(userLog,"userLog");
//find
UserLog savedLog = mongoOps.findOne(new Query(where("operater").is("zt")), UserLog.class);
System.out.println("savedLog : " + savedLog);
//update
WriteResult updateResult = mongoOps.updateFirst(new Query(where("operater").is("zt")),
Update.update("operater", "qs"), UserLog.class);
System.out.println("updateResult : " + updateResult.getN());
//delete
mongoOps.remove(new Query(where("operater").is("zt")),"userLog");
//List
DBCollection dBCollection = mongoOps.getCollection("userLog");
System.out.println("Number of user = " + dBCollection.getCount());
}
public MongoTemplate getMongoOps() {
return mongoOps;
}
public void setMongoOps(MongoTemplate mongoOps) {
this.mongoOps = mongoOps;
}
}
分享到:
相关推荐
通过 Spring Data MongoDB,开发者可以利用 Spring 的强大功能轻松地进行 NoSQL 数据库的操作。 - **Spring Data MongoDB** 的设计目标是简化开发者的开发流程,通过提供一种统一的方式与不同的数据存储系统进行交互...
Spring Data MongoDB项目是Spring框架的一部分,它提供了一个方便的API来操作MongoDB数据库,使得开发人员可以更高效地进行数据存储和检索。 **1. Spring Data MongoDB简介** Spring Data MongoDB提供了与MongoDB...
Spring Data MongoDB是一个强大的Java库,它为开发人员提供了一种简单的方式来访问和操作MongoDB数据库。这个库是Spring Data框架的一部分,旨在简化数据访问层的实现,尤其在使用NoSQL数据库如MongoDB时。MongoDB...
SpringData MongoDB在背后利用了MongoDB的Java驱动程序,但是它提供了一层更高级的抽象,使得操作MongoDB变得更加直观和容易。 文档中提到的MongoTemplate是SpringData MongoDB中的另一个重要组成部分。这是一个...
对于MongoDB,Spring Data提供了一个模块Spring Data MongoDB,允许开发者使用Java对象直接操作MongoDB文档。通过使用`@Document`注解标记实体类,我们可以轻松地将这些对象映射到MongoDB的集合。此外,Spring Data...
在本篇“MongoDB初探(二)----使用spring-data配置mongodb”中,我们将深入探讨如何利用Spring Data框架来集成和操作MongoDB数据库。Spring Data是Spring生态系统的一个重要组成部分,它提供了与各种数据存储系统...
- **MongoTemplate**:这是 Spring Data MongoDB 的核心类,提供了一组丰富的操作方法,用于执行 CRUD(创建、读取、更新、删除)操作,以及查询和聚合操作。 - **Repository**:Spring Data 提供了基于接口的 ...
Spring Data MongoDB 是一个用于简化MongoDB数据库操作的框架,它为Spring应用提供了强大的支持,使得开发者可以更加方便地集成和操作非关系型数据库。在这个"spring data mongodb代码参考"中,我们将深入探讨如何...
6. **Spring Data REST**:当与Spring Data REST模块一起使用时,Spring Data MongoDB可以自动暴露Repository接口作为RESTful服务,便于Web服务的构建和消费。 7. **版本控制**:通过`@Version`注解,Spring Data ...
Spring Data为MongoDB提供了一个强大的抽象层,使得开发者可以轻松地在Java应用中集成和操作MongoDB。 Spring Data MongoDB的核心概念是Repository抽象,它允许开发者定义自定义的查询方法,而无需编写SQL或MongoDB...
Spring Data MongoDB 支持 MongoDB 的聚合框架,允许开发者使用 Java API 实现数据的聚合操作,如管道、匹配、投影等。 八、Spring Data REST 集成 通过启用 Spring Data REST,可以将 MongoDB 存储的资源暴露为 ...
最后,文档的格式和内容表明了它是为了给Java开发者提供一份详尽的参考指南,以便他们可以高效地使用Spring Data MongoDB框架来操作MongoDB数据库。通过官方文档,开发者可以获取到最佳实践、示例代码以及与Spring...
Spring Data MongoDB API允许开发者以声明式的方式操作数据,而无需直接处理低级的MongoDB驱动程序。 1. **MongoDB概述**: MongoDB是一个开源、分布式、文档型的NoSQL数据库,以JSON格式存储数据,支持快速查询、...
6. **MongoTemplate**:对于需要更底层控制的场景,可以使用`MongoTemplate`类,它提供了直接操作MongoDB的API,允许你执行任何MongoDB命令。 7. **Spring Boot自动配置**:Spring Boot的魔力在于它的自动配置能力...
6. **MongoTemplate**: 这是Spring Data MongoDB的核心组件,提供了低级别的操作接口,如增删查改。你可以通过MongoTemplate执行自定义的查询或者操作。 7. **Repository接口**: Spring Data MongoDB的Repository...
Spring Data MongoDB 1.5.4 版本为开发者提供了更强大的功能和更简便的操作方式。 #### 二、需求与资源 **1. 需求** - Java 开发环境:推荐使用 Java 1.7 或更高版本。 - MongoDB 数据库:推荐使用 MongoDB 2.4 ...
spring-data-mongodb已经对mongodb的操作做了一部分封装,但依然不够,Query Criteria Sort的操作依然有比较大的局限性,而且对于习惯sql操作的人来说,理解其使用法则依然稍显别扭。mongoHelper对spring-data-...
Spring Data MongoDB 提供了对MongoDB数据库的高级支持,使得在Spring应用中集成和操作MongoDB变得更加便捷。它实现了ORM(对象关系映射)的概念,尽管MongoDB是一个NoSQL文档数据库,而不是传统的关系型数据库。这...
Spring Data是一个强大的Java框架,它简化了数据库操作,特别是对于NoSQL数据库如MongoDB。MongoDB是一种文档型数据库,以其灵活性、可扩展性和高性能而闻名。在Spring Data MongoDB中,我们可以通过Repository接口...