数据库

 首页 > 数据库 > MongoDB > Spring对MongoDB的支持

Spring对MongoDB的支持

分享到:
【字体:
导读:
         摘要:spring对mongoDB的支持包括以下特征:mongodb在spring中的配置支持注解@Configuration和xml的方式MongoTemplate辅助类扩展了Mongooperations的生产效率,提供了document和pojo类型之间的转换添加依赖到pom.xmldependencies!--oth...

Spring对MongoDB的支持
spring对mongoDB的支持包括以下特征:

mongodb在spring中的配置支持注解 @Configuration和xml的方式

MongoTemplate辅助类扩展了Mongo operations的生产效率,提供了document和pojo类型之间的转换

添加依赖到pom.xml

 

 

    org.springframework.data

    spring-data-mongodb

    1.1.0.RELEASE

 


你可以将日志级别设置成debug来查看更多的日志信息

log4j.category.org.springframework.data.document.mongodb=DEBUG

log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %40.40c:%4L - %m%n


app-mongodb.xml

    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">

   

   

   

       

            threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"

            connect-timeout="${mongo.connectTimeout}"

            max-wait-time="${mongo.maxWaitTime}"

            auto-connect-retry="${mongo.autoConnectRetry}"

            socket-keep-alive="${mongo.socketKeepAlive}"

            socket-timeout="${mongo.socketTimeout}"

            slave-ok="${mongo.slaveOk}"

            write-number="1"

            write-timeout="0"

            write-fsync="true" />

   

   

   

       

   

   

   

   

   

  Person.java

package com.dempe.summer.person.model;

import org.springframework.data.annotation.Id;

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

/**

 * @author: Zheng Dongping

 * @version 1.0 date: 2013-12-20

 */

@Document(collection = "person")

public class Person {

    @Id

    private String id;

    private String name;

    private Integer age;

    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 Integer getAge() {

        return age;

    }

    public void setAge(Integer age) {

        this.age = age;

    }

}

 How the '_id' field is handled in the mapping layer

mongoDB默认会为所有的document生成_id字段,MongoMappingConverter类有确定的规则去管理从java类到"_id"字段的映射,

当一个字段被@Id注解标注,或者这个字段的名字为id,那么这个字段将会为映射成"_id"

PersonRepository.javapackage com.dempe.summer.person.persist;

import java.util.List;

import org.bson.types.ObjectId;

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

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

import com.dempe.summer.person.model.Person;

/**

 * @author: Zheng Dongping

 * @version 1.0 date: 2013-12-20

 */

public interface PersonRepository extends MongoRepository {

 // 这里的?0代表方法里面的第一个参数

    @Query("{ 'name':?0}")

    public List findByName(String name);

}

 PersonController.java

package com.dempe.summer.person.controller;

import java.util.List;

import javax.inject.Inject;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import com.dempe.summer.person.model.Person;

import com.dempe.summer.person.persist.PersonRepository;

/**

 * @author: Zheng Dongping

 * @version 1.0 date: 2013-12-20

 */

@Controller

@RequestMapping(value = "/person")

public class PersonController {

    @Inject

    PersonRepository repository;

    @RequestMapping(value = "/test")

    @ResponseBody

    public String testMongo() {

        // repository.deleteAll();

        Person person = new Person();

        person.setId("12234499");

        person.setName("dempe");

        person.setAge(3);

        repository.save(person);

        Person p = new Person();

        p.setId("2222");

        p.setName("dempe");

        p.setAge(4);

        repository.save(p);

        List person2List = repository.findByName("dempe");

        System.out.println("person2:" + person2List.get(0).getName() + person2List.size());

        return "success";

    }

}


Spring对MongoDB的支持
分享到:
MongoDB数据库的update使用方法详解
MongoDB数据库的update使用方法详解 在前面的文章“mongodb 查询的语法”里,我介绍了Mongodb的常用查询语法,Mongodb的update操作也有点复杂,我结合自己的使用经验,在这里介绍一下,给用mongodb的朋友看看,也方便以后自己用到的时候查阅: 注:在这篇文章及上篇文章内讲的语法介绍都是在mongodb shell环...
MongoDB Update的使用方法
MongoDB Update的使用方法 最近开始阅读一些关于MongoDB的文章,越来越觉得它就是我所需要。不过,我先对对它知之甚少,看到都是些表面现象,慢慢了解吧。 昨天开始阅读卡尔写的MongoDB简介,一共33页,感觉文章说得不算太清楚,需要自己动手多尝试和体会。 对于传统数据库来说CRUD(=Create+Read+Update+Delete)...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……