Skip to content

我们的这个是关于Spring Data MongoDB 的学习和配置,其中我实现了分页和BaseDao的接口和方法,可以供大家学习和参考

Notifications You must be signed in to change notification settings

yellowcong/Spring-Data-MongoDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Spring-Data-MongoDB

我们的这个是关于Spring Data MongoDB 的学习和配置,其中我实现了分页和BaseDao的接口和方法,可以供大家学习和参考

##BaseDao接口 package com.yellowcong.dao;

import java.util.List;

import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update;

import com.yellowcong.model.Pager;

/**

  • 建立公共的BaseDao接口,所有的Dao都需要继承这个类

  • @author 狂飙のyellowcong

  • 2015年8月19日

  • @param */ public interface BaseDao {

    /**

    • 通过条件查询实体(集合)
    • @param query /
      public List list(Query query) ;
      /
      *
    • 获取所有的数据
    • @return */ public List list() ;

    /**

    • 通过一定的条件查询一个实体
    • @param query
    • @return */
      public T findOne(Query query) ;

    /**

    • 通过条件查询更新数据
    • @param query
    • @param update
    • @return */
      public void update(Query query, Update update) ;

    /**

    • 通过给定的对象进行更新
    • @param entry */ public void update(T entry);

    /**

    • 保存一个对象到mongodb
    • 使用的是mongotemplate的insert方法
    • 添加的时候,会制动增长id
    • id 必须是 int id 字段
    • @param entity
    • @return */
      public T save(T entity) ;

    /**

    • 通过ID获取记录
    • @param id
    • @return */
      public T load(int id) ;

    /**

    • 通过ID获取记录,并且指定了集合名(表的意思)
    • @param id
    • @param collectionName
    •        集合名 
      
    • @return */
      public T findById(String id, String collectionName) ;

    /**

    • 分页查询
    • @param page
    • @param query
    • @return */
      //public Page findPage(Page page,Query query);

    /**

    • 求数据总和 ,根据给定的 Query查询
    • @param query
    • @return */
      public long count(Query query);

    /**

    • 获取所有数据条数
    • @return */ public long count();

    /**

    • 通过id删除数据
    • @param id / public void delete(int id); /*
    • 一次删除多条数据
    • @param ids / public void deletes(int [] ids); /*
    • 通过传递过来的 对象来删除数据
    • @param entry / public void delete(T entry); /*
    • 带分页查询
    • @return / public Pager queryByPager(); /*
    • 不带分页的查询方法
    • @param query
    • @return */ public Pager queryByPager(Query query); }

##ApplicatonContext.xml配置

<!-- 标注扫描的类 -->
<!-- 开启注解 -->
<context:annotation-config />
<context:component-scan base-package="com.yellowcong" />

<!-- 配置数据库的地址和端口 -->
<mongo:mongo host="127.0.0.1" 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的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 -->
<!-- 基于这个 properties配置有问题,不知道啥原因 -->
<!-- 
<context:property-placeholder location="classpath:jdbc-config-local.properties" />
 -->
 
 <!-- 如果没有创建数据库,就会默认创建数据库
   username="root"  
   password="root"
  -->
<mongo:db-factory id="mongoDbFactory"  
                  host="127.0.0.1"  
                  port="27017"  
                  dbname="test"  
                
                  mongo-ref="mongo"/>  
<!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成
	设定我们的 mongoDbFactory 对象
 -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
	<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>

##pom.xml配置

4.0.0 com.yellowcong.mongodb day08_18_mongodb jar 0.0.1-SNAPSHOT day08_18_mongodb http://maven.apache.org

<repositories>  
<!-- 设定工厂, 这个工厂是 spring的 -->
<repository>
    <id>spring-snapshots</id>
    <name>Spring Snapshots</name>
    <url>http://repo.spring.io/snapshot</url>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
</repository>  
javax.annotation javax.annotation-api 1.2 junit junit 4.10 test
  <!-- 配置mongodb 1.7.2 释放版本 -->
org.springframework.data spring-data-mongodb 1.7.2.RELEASE
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-aop</artifactId>
	<version>4.1.6.RELEASE</version>
</dependency>

<!-- Spring测试包 -->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-test</artifactId>
	<version>4.1.6.RELEASE</version>
</dependency>


<!-- 导入bean的 操作工具,方便操作反射 -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.2</version>
</dependency>

	<!-- 加入log4j -->
<dependency>
	<groupId>log4j</groupId>
	<artifactId>log4j</artifactId>
	<version>1.2.16</version>
</dependency>

About

我们的这个是关于Spring Data MongoDB 的学习和配置,其中我实现了分页和BaseDao的接口和方法,可以供大家学习和参考

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published