下面讲解如何使用spring-data-mongdb来对mongdb进行增删改查的操作
你需要的工具:
-
Spring Data MongoDB – 1.0.0.M2
-
Spring Core – 3.0.5.RELEASE
-
Java Mongo Driver – 2.5.2
-
Eclipse – 3.6
-
JDK – 1.6
-
Maven – 3.0.3
1.工程目录结构
2.依赖
你需要在pom.xml里面添加如下依赖
<repositories>
<repository>
<id>spring-milestone</id>
<name>Spring Maven MILESTONE Repository</name>
<url>http://maven.springframework.org/milestone</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<!-- Spring framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<!-- mongodb java driver -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.0.0.M2</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
</project>
Annotation
需要在java文件中声明spring的mongodb注解
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.document.mongodb.MongoTemplate;
import org.springframework.data.document.mongodb.config.AbstractMongoConfiguration;
import com.mongodb.Mongo;
/**
* Spring MongoDB configuration file
*
*/
@Configuration
public class SpringMongoConfig extends AbstractMongoConfiguration {
@Override
public @Bean Mongo mongo() throws Exception {
return new Mongo("localhost");
}
@Override
public @Bean MongoTemplate mongoTemplate() throws Exception {
return new MongoTemplate(mongo(),"yourdb","yourCollection");
}
}
然后在main函数中就可以通过下面方式来获取mongodbtemplate
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
ApplicationContext ctx = new GenericXmlApplicationContext("mongo-config.xml");
XML
通过xml方式来配置
<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">
<!-- Default bean name is 'mongo' -->
<mongo:mongo host="localhost" port="27017" />
<bean id="mongoTemplate"
class="org.springframework.data.document.mongodb.MongoTemplate">
<constructor-arg ref="mongo" />
<constructor-arg name="databaseName" value="yourdb" />
<constructor-arg name="defaultCollectionName" value="yourCollection" />
</bean>
<!-- To translate any MongoExceptions thrown in @Repository annotated classes -->
<context:annotation-config />
</beans>
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
ApplicationContext ctx = new GenericXmlApplicationContext("mongo-config.xml");
4.定义用户模型
public class User {
private String id;
private String firstname;
private String lastname;
private int age;
//getter and setter methods
}
5.CRUD操作
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
import org.springframework.data.document.mongodb.MongoOperations;
import org.springframework.data.document.mongodb.query.Criteria;
import org.springframework.data.document.mongodb.query.Query;
import org.springframework.data.document.mongodb.query.Update;
import com.mkyong.config.SpringMongoConfig;
import com.mkyong.user.User;
public class App
{
public static void main( String[] args )
{
//For Annotation
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
//For XML
//ApplicationContext ctx = new GenericXmlApplicationContext("mongo-config.xml");
MongoOperations mongoOperation = (MongoOperations)ctx.getBean("mongoTemplate");
User user = new User("1001", "yong", "mook kim", 30);
//save
mongoOperation.save("userprofile",user);
//find
User savedUser = mongoOperation.findOne("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
System.out.println("savedUser : " + savedUser);
//update
mongoOperation.updateFirst("userprofile",
new Query(Criteria.where("firstname").is("yong")),
Update.update("lastname", "new lastname"));
//find
User updatedUser = mongoOperation.findOne("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
System.out.println("updatedUser : " + updatedUser);
//delete
mongoOperation.remove("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
//List
List<User> listUser =
mongoOperation.getCollection("userprofile", User.class);
System.out.println("Number of user = " + listUser.size());
}
}
输出:
savedUser : User [id=1001, firstname=yong, lastname=mook kim, age=30]
updatedUser : User [id=1001, firstname=yong, lastname=new lastname, age=30]
Number of user = 0
参考:http://www.mkyong.com/mongodb/spring-data-mongodb-hello-world-example/
分享到:
相关推荐
本节我们将探讨SpringData的概述以及如何通过一个简单的"HelloWorld"示例来入门。 SpringData的核心目标是通过减少样板代码,使数据访问更加简单、高效。它支持多种数据存储技术,包括JPA(Java Persistence API)...
#### 三、SpringData JPA HelloWorld 示例 ##### 1. 环境搭建 为了使用 SpringData JPA,首先需要搭建合适的开发环境。这包括: - **下载 SpringData Commons 和 SpringData JPA 发布包**: - **SpringData ...
2. **Hello World示例** "Hello World"是所有编程语言学习的起点,同样适用于Spring Boot。在Spring Boot中,我们通常通过创建一个简单的RESTful API来实现这个功能。首先,我们需要创建一个新的Maven或Gradle项目...
在"SpringMongoDB-HelloWorld-Example"这个示例中,我们将学习如何配置Spring项目以使用MongoDB,并创建第一个简单的应用。 1. **配置MongoDB连接**:在Spring中,我们需要配置MongoDB的数据源,这通常通过`...
Spring Boot 2.0:云收藏(Spring Boot 2.0实战开源项目)示例代码 :Spring Boot 2.0 Hello World示例 :Spring Boot定制横幅示例 docker:使用Docker部署Spring Boot示例 :Docker编写+ Spring Boot + Nginx + ...
1. **spring-boot-helloWorld**:这是Spring Boot的基础入门示例,它展示了如何创建一个简单的“Hello, World!”应用程序。在该模块中,你可以学习到如何配置Spring Boot的主启动类,以及如何利用@SpringBoot...
在"spring-hello"这个子文件中,很可能是演示了Spring框架的基本使用,例如创建一个简单的Hello World应用程序,展示如何配置和启动Spring容器,以及如何定义和注入Bean。这样的示例对于初学者来说是非常有帮助的,...
同时,Spring Data还支持NoSQL数据库,如MongoDB。 Spring Security是安全相关的模块,提供了认证和授权的功能。它可以控制哪些用户可以访问哪些资源,支持角色、权限等高级安全策略。 在压缩包中,可能包含了以下...
在 SpringBoot-Learning 压缩包中,你可能找到包含这些知识点的示例代码,从基础的“Hello World”到复杂的微服务配置,逐步深入学习 Spring Boot 的使用。通过实践这些代码,你可以更好地理解 Spring Boot 的工作...
开发者可以通过MongoTemplate或Spring Data MongoDB来操作MongoDB,实现数据的增删改查。 4. **RabbitMQ**:RabbitMQ是基于AMQP协议的消息中间件,用于解耦应用程序。Spring Boot整合RabbitMQ,可以实现生产者发送...
在本文示例中,我们仅使用 `controller` 包编写一个简单的 "Hello World" 示例。在 `controller` 包下创建名为 `nana` 的类,并添加如下代码: ```java package com.example.controller; import org.spring...
3. **数据访问**:"spring-boot-sample-data-jpa"和"spring-boot-sample-data-mongodb"分别演示了如何与关系型数据库(如MySQL、PostgreSQL)和非关系型数据库(如MongoDB)集成,使用JPA和Spring Data进行数据操作...
在项目中的"helloworld"文件,可能是一个启动程序或者基础的Hello World示例,用于展示如何在SpringBoot应用中编写和运行简单的代码。通常,这个文件会包含一个主类,该类使用@SpringBootApplication注解,这标志着...
2. **HelloWorld 示例** - 在 SpringBoot 中,通常会创建一个简单的 RESTful API 来展示 "Hello, World!",这有助于理解 MVC(模型-视图-控制器)架构。 - 创建一个 `Controller` 类,定义一个返回 "Hello, World!...
#### Spring Boot JPA Thymeleaf 增删改查示例 - **实体类定义**:定义一个简单的实体类(例如 `User`),并使用 JPA 的注解进行实体映射。 ```java @Entity public class User { @Id @GeneratedValue(strategy...
- 实践Spring Boot,创建第一个“Hello, World!”应用。 - 深入研究Spring Data和Spring Security,了解如何在实际项目中应用它们。 - 通过实战项目来巩固所学知识,例如构建一个完整的Web应用或后台服务。 以上...
入门示例中,我们常常会创建一个简单的“Hello, World”应用,使用 `@RestController` 和 `@GetMapping` 注解来映射 HTTP 请求并返回响应。 ```java @RestController public class HelloWorldController { @...
- 添加 `spring-boot-starter-data-mongodb` 依赖。 - 使用 `@Repository` 定义 Repository 接口。 2. **示例代码:** ```java @Repository public interface CustomerRepository extends MongoRepository, ...
2. **POM.xml**: Maven或Gradle构建文件,定义了项目依赖,如Spring Boot Starter WebFlux、Spring Data Reactive MongoDB等。 3. **启动类**: 启动应用的主类,包含`main`方法,通常使用`SpringApplication.run`...
- **代码示例**:在上面的部分内容中,提到了如何使用Spring来创建一个简单的Hello World程序。具体步骤包括: - 创建Spring的配置文件(如`beans.xml`)。 - 在配置文件中定义Bean及其属性。 - 使用`...