`

Spring Data MongoDB hello world 示例

 
阅读更多

 

下面讲解如何使用spring-data-mongdb来对mongdb进行增删改查的操作

 

你需要的工具:

 

  1. Spring Data MongoDB – 1.0.0.M2
  2. Spring Core – 3.0.5.RELEASE
  3. Java Mongo Driver – 2.5.2
  4. Eclipse – 3.6
  5. JDK – 1.6
  6. Maven – 3.0.3
1.工程目录结构
    Spring data for mongodb directory structure

2.依赖
   你需要在pom.xml里面添加如下依赖
    <project ...>
	<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>

 

 

3.spring的配置

   可以通过两种方式来配置spring data来使用mongodb

Annotation

 需要在java文件中声明spring的mongodb注解

  package com.mkyong.config;

 
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方式来配置

   <?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">
 
	<!-- 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.定义用户模型

     package com.mkyong.user;

 
public class User {
 
	private String id;
	private String firstname;
	private String lastname;
	private int age;
 
	//getter and setter methods 
}

 

5.CRUD操作

 

   package com.mkyong.core;

 
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-1 概述与HelloWorld

    本节我们将探讨SpringData的概述以及如何通过一个简单的"HelloWorld"示例来入门。 SpringData的核心目标是通过减少样板代码,使数据访问更加简单、高效。它支持多种数据存储技术,包括JPA(Java Persistence API)...

    SpringData入门、SSS框架整合

    #### 三、SpringData JPA HelloWorld 示例 ##### 1. 环境搭建 为了使用 SpringData JPA,首先需要搭建合适的开发环境。这包括: - **下载 SpringData Commons 和 SpringData JPA 发布包**: - **SpringData ...

    1. [视频]spring boot起步之Hello World【从零开始学Spring Boot】

    2. **Hello World示例** "Hello World"是所有编程语言学习的起点,同样适用于Spring Boot。在Spring Boot中,我们通常通过创建一个简单的RESTful API来实现这个功能。首先,我们需要创建一个新的Maven或Gradle项目...

    学习MongoDB

    在"SpringMongoDB-HelloWorld-Example"这个示例中,我们将学习如何配置Spring项目以使用MongoDB,并创建第一个简单的应用。 1. **配置MongoDB连接**:在Spring中,我们需要配置MongoDB的数据源,这通常通过`...

    spring-boot-examples:关于通过示例学习Spring Boot。 Spring Boot教程,技术栈示例代码,快速简单上手教程

    Spring Boot 2.0:云收藏(Spring Boot 2.0实战开源项目)示例代码 :Spring Boot 2.0 Hello World示例 :Spring Boot定制横幅示例 docker:使用Docker部署Spring Boot示例 :Docker编写+ Spring Boot + Nginx + ...

    SpringbootDemo

    1. **spring-boot-helloWorld**:这是Spring Boot的基础入门示例,它展示了如何创建一个简单的“Hello, World!”应用程序。在该模块中,你可以学习到如何配置Spring Boot的主启动类,以及如何利用@SpringBoot...

    spring的Java项目

    在"spring-hello"这个子文件中,很可能是演示了Spring框架的基本使用,例如创建一个简单的Hello World应用程序,展示如何配置和启动Spring容器,以及如何定义和注入Bean。这样的示例对于初学者来说是非常有帮助的,...

    Spring实例

    同时,Spring Data还支持NoSQL数据库,如MongoDB。 Spring Security是安全相关的模块,提供了认证和授权的功能。它可以控制哪些用户可以访问哪些资源,支持角色、权限等高级安全策略。 在压缩包中,可能包含了以下...

    spring boot整套学习代码

    在 SpringBoot-Learning 压缩包中,你可能找到包含这些知识点的示例代码,从基础的“Hello World”到复杂的微服务配置,逐步深入学习 Spring Boot 的使用。通过实践这些代码,你可以更好地理解 Spring Boot 的工作...

    dubbo多种小案例

    开发者可以通过MongoTemplate或Spring Data MongoDB来操作MongoDB,实现数据的增删改查。 4. **RabbitMQ**:RabbitMQ是基于AMQP协议的消息中间件,用于解耦应用程序。Spring Boot整合RabbitMQ,可以实现生产者发送...

    Spring boot基础文档范本模板.pdf

    在本文示例中,我们仅使用 `controller` 包编写一个简单的 "Hello World" 示例。在 `controller` 包下创建名为 `nana` 的类,并添加如下代码: ```java package com.example.controller; import org.spring...

    spring-boot-samples-master

    3. **数据访问**:"spring-boot-sample-data-jpa"和"spring-boot-sample-data-mongodb"分别演示了如何与关系型数据库(如MySQL、PostgreSQL)和非关系型数据库(如MongoDB)集成,使用JPA和Spring Data进行数据操作...

    SPRINGBOOT_springboot_furthermjz_

    在项目中的"helloworld"文件,可能是一个启动程序或者基础的Hello World示例,用于展示如何在SpringBoot应用中编写和运行简单的代码。通常,这个文件会包含一个主类,该类使用@SpringBootApplication注解,这标志着...

    springtestliu.zip

    2. **HelloWorld 示例** - 在 SpringBoot 中,通常会创建一个简单的 RESTful API 来展示 "Hello, World!",这有助于理解 MVC(模型-视图-控制器)架构。 - 创建一个 `Controller` 类,定义一个返回 "Hello, World!...

    Spring Boot 开源电子书1

    #### Spring Boot JPA Thymeleaf 增删改查示例 - **实体类定义**:定义一个简单的实体类(例如 `User`),并使用 JPA 的注解进行实体映射。 ```java @Entity public class User { @Id @GeneratedValue(strategy...

    Spring全面学习

    - 实践Spring Boot,创建第一个“Hello, World!”应用。 - 深入研究Spring Data和Spring Security,了解如何在实际项目中应用它们。 - 通过实战项目来巩固所学知识,例如构建一个完整的Web应用或后台服务。 以上...

    Spring Boot.docx

    入门示例中,我们常常会创建一个简单的“Hello, World”应用,使用 `@RestController` 和 `@GetMapping` 注解来映射 HTTP 请求并返回响应。 ```java @RestController public class HelloWorldController { @...

    spring boot 案例

    - 添加 `spring-boot-starter-data-mongodb` 依赖。 - 使用 `@Repository` 定义 Repository 接口。 2. **示例代码:** ```java @Repository public interface CustomerRepository extends MongoRepository, ...

    SpringBoot_Reactive:Spring BootReact性示例

    2. **POM.xml**: Maven或Gradle构建文件,定义了项目依赖,如Spring Boot Starter WebFlux、Spring Data Reactive MongoDB等。 3. **启动类**: 启动应用的主类,包含`main`方法,通常使用`SpringApplication.run`...

    简化企业级开发

    - **代码示例**:在上面的部分内容中,提到了如何使用Spring来创建一个简单的Hello World程序。具体步骤包括: - 创建Spring的配置文件(如`beans.xml`)。 - 在配置文件中定义Bean及其属性。 - 使用`...

Global site tag (gtag.js) - Google Analytics