`
huangyongxing310
  • 浏览: 498790 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Spring Data MongoDb Repository 简单使用例子

阅读更多
Spring Data MongoDb Repository 简单使用例子


1.使用Spring Data MongoDb Repository可以使你不用写相关的查询组合语句,它会内部为我们实现这样的一个类。
2.只要你按规定定义好接口名就可以免去你写查询组合语句。
3.要有主键值才可以用save(有就更新,没有就插入)。所以就算没有ID也增加这个字段是好的。(id要是String才会自动为你生面ID号(保存时可以没有值),int 要你自己做惟一处理和输入值)
4.DATE不能作为主键使用。


<dependency>
	<groupId>org.springframework.data</groupId>
	<artifactId>spring-data-mongodb</artifactId>
	<version>1.9.3.RELEASE</version>
</dependency>


applicationContext.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"
        xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            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.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">

 <context:annotation-config />
	<!-- <task:annotation-driven /> -->
	<context:component-scan base-package="com" />

    <mongo:mongo host="localhost" port="27017" >
            <!-- 可选项如果不配置则为值为默认 -->
          <mongo:options
              connections-per-host="8"
              threads-allowed-to-block-for-connection-multiplier="4"
              connect-timeout="1000"
              max-wait-time="1500"
              auto-connect-retry="true"
              socket-keep-alive="true"
              socket-timeout="1500"
              slave-ok="true"
              write-number="1"
              write-timeout="0"
              write-fsync="true"
                  />
    </mongo:mongo>

    <mongo:db-factory id="anotherMongoDbFactory"
    host="localhost"
    port="27017"
    dbname="admin"
    username="admin"
    password="admin" mongo-ref="mongo"/>

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="anotherMongoDbFactory" />
    </bean>

    <!-- mongodb bean的仓库目录,会自动扫描扩展了MongoRepository接口的接口进行注入 -->
    <mongo:repositories base-package="com.mongorepository" />

</beans>



package com;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "userTest") //collection指定名字,不指定为类名
public class UserTest {

	@Id
	private String id;
        @Indexed(unique = true)
	private String name;
	private String age;
	private String address;
	private String high;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getHigh() {
		return high;
	}

	public void setHigh(String high) {
		this.high = high;
	}

	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + ", age=" + age + ", address=" + address + ", high=" + high + "]";
	}

}



package com.mongorepository;

import java.util.List;

import org.springframework.data.mongodb.repository.MongoRepository;

import com.UserTest;

public interface UserTestRepository extends MongoRepository<UserTest, String>{
	public UserTest findById(String id);			//只定义接口就可以了,以By为开头定义接口名
	public List<UserTest> findByName(String name);
}



package com;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;

import com.mongorepository.UserTestRepository;

@Service("personService")
public class PersonServiceImpl {
	@Autowired
	private UserTestRepository userTestRepository;  //会自动注入实现这个接口的类

	@Autowired
	private MongoTemplate mongoTemplate; // 方便复杂功能实现

	public UserTestRepository getUserTestRepository() {
		return userTestRepository;
	}

	public void setUserTestRepository(UserTestRepository userTestRepository) {
		this.userTestRepository = userTestRepository;
	}

	public MongoTemplate getMongoTemplate() {
		return mongoTemplate;
	}

	public void setMongoTemplate(MongoTemplate mongoTemplate) {
		this.mongoTemplate = mongoTemplate;
	}
}


package com;

import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MongoTest {
	public static void main(String[] args) throws InterruptedException {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/applicationContext.xml");

		PersonServiceImpl personServiceImpl = (PersonServiceImpl) applicationContext.getBean("personService");
		System.out.println(personServiceImpl);

		UserTest userTest = new UserTest();
		userTest.setAddress("setAddress");
		userTest.setName("Name");
		userTest.setAge("setAge");
		userTest.setHigh("setHigh");

		personServiceImpl.getUserTestRepository().insert(userTest);

		List<UserTest> userTestList = personServiceImpl.getUserTestRepository().findAll();
		System.out.println("userTestList == " + userTestList.toString());

		userTestList = personServiceImpl.getUserTestRepository().findByName("Name");
		System.out.println("userTestList == " + userTestList.toString());
	}
}




参考原文(英文参考文档):https://docs.mongodb.com/manual/reference/sql-comparison/
分享到:
评论

相关推荐

    Spring Data MongoDB中文文档

    - **Spring Data MongoDB** 是 **Spring Data** 家族的一员,它提供了一种简单的方式来与 MongoDB 数据库进行交互。通过 Spring Data MongoDB,开发者可以利用 Spring 的强大功能轻松地进行 NoSQL 数据库的操作。 - ...

    springdata mongodb api文档

    对于那些希望了解如何使用SpringData MongoDB的开发人员来说,文档还提供了参考资料和入门指南,从如何安装和配置MongoDB到如何使用MongoTemplate以及创建自定义Repository实现等不同层次的内容都有涉及。...

    spring-data-mongodb-1.8.0.RELEASE(含源码)

    - **MongoEntity**:Spring Data MongoDB 使用注解来定义对象如何映射到 MongoDB 文档。例如,`@Document` 注解标识一个类为 MongoDB 的文档实体,`@Id` 用于指定主键字段。 - **Field 映射**:`@Field` 注解用于...

    spring data mongodb代码参考

    Spring Data MongoDB是Spring Data项目的一部分,它提供了MongoDB的Repository抽象,允许开发者以声明式的方式定义查询,而无需编写大量的模板代码。通过这个框架,你可以快速地构建基于MongoDB的应用程序,同时...

    Spring-Data-MongoDB3.2

    Spring Data MongoDB提供了与MongoDB数据库交互的一系列抽象,包括MongoTemplate和Repository接口。通过这些接口,开发人员无需直接编写MongoDB的Java驱动程序代码,就能实现CRUD(创建、读取、更新和删除)操作,...

    Spring3+Spring-data-mongodb1.5.6示例

    Spring Data MongoDB是Spring Data项目的一部分,它提供了一个面向对象的API,使得与NoSQL数据库MongoDB进行交互变得更加简单。以下是关于这个主题的详细知识点: 1. **Spring Framework**: Spring是一个开源的应用...

    spring data mongodb

    通过以上介绍,我们可以看出Spring Data MongoDB是如何简化了MongoDB在Spring Boot项目中的使用。通过定义Repository接口,使用Entity注解,以及利用Spring Boot的自动化配置,开发者可以高效地完成数据的存取操作,...

    Spring-data + MongoDb源码

    Spring Data MongoDB的核心概念是Repository抽象,它允许开发者定义自定义的查询方法,而无需编写SQL或MongoDB查询。这个框架会自动将这些方法转换为对应的MongoDB操作。下面我们将深入探讨Spring Data MongoDB的几...

    Spring Data MongoDB 中文参考文档和Springboot使用例子.rar

    Spring Data MongoDB 是一个强大的框架,它为开发人员提供了一种简单的方式来访问和操作MongoDB数据库。这个框架是Spring Data项目的一部分,旨在简化数据访问层的编程模型,使其更符合Java和Spring生态系统的习惯。...

    MongoDB初探(二)----使用spring-data配置mongodb

    至此,你已经成功地配置了Spring Data MongoDB,并可以开始使用Repository进行MongoDB的操作。通过这种方式,开发人员可以专注于业务逻辑,而无需关心底层数据库操作的细节,大大提高了开发效率。 标签“源码”和...

    spring mvc+spring data+mongodb实例1

    这个实例涵盖了Spring MVC的控制器设计、Spring Data MongoDB的使用,以及MongoDB的基础操作,是学习现代Java Web开发的一个好例子。通过阅读源码并动手实践,开发者可以加深对这三个技术的理解,并提升自己的技能。

    Spring Data MongoDB : Update document

    现在,我们可以使用Spring Data MongoDB的`MongoRepository`接口来操作数据。定义一个接口继承`MongoRepository`,并提供实体类和ID类型: ```java import org.springframework.data.mongodb.repository.Mongo...

    spring-data-mongodb-1.2.0.RELEASE

    在 Spring 应用中使用 Spring Data MongoDB 需要配置 MongoDB 的连接信息,包括主机、端口、数据库名等。通过 @EnableMongoRepositories 注解启用 MongoDB 的仓储接口。 五、对象映射 Spring Data MongoDB 使用 @...

    spring-data-mongodb1.2.0

    6. **Spring Data REST**:当与Spring Data REST模块一起使用时,Spring Data MongoDB可以自动暴露Repository接口作为RESTful服务,便于Web服务的构建和消费。 7. **版本控制**:通过`@Version`注解,Spring Data ...

    spring mongodb用到的jar包spring-date-mongodb1.4.2.zip

    这个压缩包`spring-date-mongodb1.4.2.zip`包含了两个核心的JAR文件:`spring-data-mongodb-1.4.2.RELEASE.jar`和`spring-data-commons-1.7.2.RELEASE.jar`,它们是Spring Data MongoDB项目的关键组成部分。...

    spring-data-mongodb api

    Spring Data MongoDB自动为Repository接口的方法生成查询。例如,`findByLastname(String lastname)`将自动转化为MongoDB的查询语句,寻找具有特定姓氏的文档。 6. **映射与转换**: `@MongoDBRef`注解用于处理...

    spring mongodb很好的例子

    Spring Data MongoDB是Spring框架的一个子项目,它使得与MongoDB的交互变得简单和直观。当将Spring Data与Spring MVC结合时,可以构建出强大的Web应用。 **Spring框架** Spring框架是一个开源的Java平台,用于简化...

    spring mongodb 中文文档

    Spring Data MongoDB 使用`MongoConverter` 和`MongoMappingContext` 来处理对象到MongoDB 文档的转换。 12. **分页与排序** Repository 接口中的`Pageable` 参数可用于实现分页查询,`Sort` 参数则用于指定排序...

    spring-data-mongodb-reference 1.5.4

    - **ExamplesRepository**:通过示例代码演示如何使用 Spring Data MongoDB 进行数据访问。 **4.3 连接到 MongoDB** - **使用 Java 基于元数据注册 MongoDB 实例** - 在 Java 配置类中使用 `@Bean` 方法来定义 `...

Global site tag (gtag.js) - Google Analytics