springmvc+monggodb简单小例子

  • mongodb下载地址:

http://www.veryhuo.com/down/html/mongodb.html

1   自定义安装到C:\mongodb目录下。

2  手动在C:\mongodb目录下创建data\db和logs两个文件夹

3  以管理员身份启动cmd,进入到c:\mongodb\bin为当前目录。

c:\mongodb\bin>  echo logpath=c:\mongodb\logs\mongodb.log> c:\mongodb\mongod.cfg

c:\mongodb\bin>  echo dbpath=c:\mongodb\data\db>> c:\mongodb\mongod.cfg

4

C:\mongodb\bin>sc create MongoDB binPath= "\"c:\mongodb\bin\mongod.exe\" --service --config=\"c:\mongodb\mongod.cfg\"" DisplayName= "MongoDB 2.6 Stardard" start= "auto"

此时会提示 CreateService 成功

 注意输入命令中每个"="后面,都要有个空格,除了--config外

5 net start MongoDB 

   此时,就成功的创建了自动运行的MongoDB服务。

  • 安装mongodb客户端

    下载地址:  http://www.cncrk.com/downinfo/44839.html

  • 创建maven工程

    pom.xml


  • <span style="font-size:10px;"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
      <modelVersion>4.0.0</modelVersion>  
      <groupId>gy</groupId>  
      <artifactId>MongDB</artifactId>  
      <packaging>war</packaging>  
      <version>0.0.1-SNAPSHOT</version>  
      <name>MongDB Maven Webapp</name>  
      <url>http://maven.apache.org</url>  
      <dependencies>  
        <dependency>  
          <groupId>junit</groupId>  
          <artifactId>junit</artifactId>  
          <version>4.11</version>  
          <scope>test</scope>  
        </dependency>  
        <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-aop</artifactId>  
                <version>3.2.7.RELEASE</version>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-aspects</artifactId>  
                <version>3.2.7.RELEASE</version>  
      
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-beans</artifactId>  
                <version>3.2.7.RELEASE</version>  
      
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-context</artifactId>  
                <version>3.2.7.RELEASE</version>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-context-support</artifactId>  
                <version>3.2.7.RELEASE</version>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-core</artifactId>  
                <version>3.2.7.RELEASE</version>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-expression</artifactId>  
                <version>3.2.7.RELEASE</version>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-jdbc</artifactId>  
                <version>3.2.7.RELEASE</version>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-tx</artifactId>  
                <version>3.2.7.RELEASE</version>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-web</artifactId>  
                <version>3.2.7.RELEASE</version>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-webmvc</artifactId>  
                <version>3.2.7.RELEASE</version>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-test</artifactId>  
                <version>3.2.7.RELEASE</version>  
            </dependency>  
        <!-- mongodb spring -->    
            <!-- <dependency>    
                <groupId>org.springframework.data</groupId>    
                <artifactId>spring-data-mongodb</artifactId>    
                <version>1.6.1.RELEASE</version>    
            </dependency> -->  
            <dependency>  
                <groupId>org.mongodb</groupId>  
                <artifactId>mongo-java-driver</artifactId>  
                <version>2.10.1</version>  
            </dependency>   
      
            <dependency>  
                <groupId>org.springframework.data</groupId>    
                <artifactId>spring-data-mongodb</artifactId>  
                <version>1.2.1.RELEASE</version>  
            </dependency>  
            </dependencies>  
      <build>  
        <finalName>MongDB</finalName>  
      </build>  
    </project></span><span style="font-size:48px;">  
    </span>

mongodb.properties

mongo.host=localhost  
mongo.port=27017  
mongo.dbName=test

spring-datasource.xml

<span style="font-size:10px;"><?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util"  
    xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:mongo="http://www.springframework.org/schema/data/mongo"  
    xsi:schemaLocation="  
            http://www.springframework.org/schema/beans  
            http://www.springframework.org/schema/beans/spring-beans.xsd  
            http://www.springframework.org/schema/aop  
            http://www.springframework.org/schema/aop/spring-aop.xsd  
            http://www.springframework.org/schema/tx  
            http://www.springframework.org/schema/tx/spring-tx-3.1.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/jdbc  
            http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd  
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd  
            http://www.springframework.org/schema/context  
            http://www.springframework.org/schema/context/spring-context-3.1.xsd">  
  
  
  
    <!-- mongo db配置 -->  
    <mongo:mongo host="localhost" port="27017" />   
      
    <!-- mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 -->    
    <mongo:db-factory dbname="test" mongo-ref="mongo" />  
  
    <!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 -->    
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">  
        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />  
    </bean>  
      
    <!-- 映射转换器,扫描back-package目录下的文件,根据注释,把它们作为mongodb的一个collection的映射 -->    
    <mongo:mapping-converter base-package="com.mongodb.entity" />    
    
    <!-- mongodb bean的仓库目录,会自动扫描扩展了MongoRepository接口的接口进行注入 -->    
    <mongo:repositories base-package="com.mongodb.service" />    
    
  
    <context:annotation-config />   
  
</beans></span>

实体类  User.java

import org.springframework.data.annotation.Id;  
import org.springframework.data.mongodb.core.mapping.Document;  
@Document(collection="t_user")  
public class User implements Serializable{  
  
    private static final long serialVersionUID = -6270568573087300894L;  
    @Id  
    private String id;  
    private String name;  
    private Integer age;  
    private Double height;  
    private Integer type;  
    private String total;

UserService.java

@Service("userService")  
public class UserService {  
    @Autowired  
    private MongoTemplate mongoTemplate;  
    public List<User> find(){  
        return mongoTemplate.findAll(User.class);  
    }  
    /** 
     * 添加对象 
     * @param user 
     * @return 
     */  
    public Boolean insert(User user){  
        Boolean result=false;  
        try{  
            mongoTemplate.insert(user);  
            result=true;  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
        return result;  
    }  
    /** 
     * 删除对象 
     * @param user 
     * @return 
     */  
    public Boolean delete(User user) {  
        Boolean result=false;  
        try{  
            mongoTemplate.remove(user);  
            result=true;  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
        return result;  
    }  
    /** 
     * 批量添加对象 
     * @param users 
     * @return 
     */  
    public Boolean insertAll(List<User> users) {  
        Boolean result=false;  
        try{  
            mongoTemplate.insertAll(users);  
            result=true;  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
        return result;  
    }  
    /** 
     * 统计 
     * @param users 
     * @return 
     */  
    public Boolean count() {  
        Boolean result=false;  
        try{  
                DBCollection coll = mongoTemplate.getCollection("t_user");  
                String map = "function() { emit(this._class, {count:1});}";  
                String reduce = "function(key, values) {" +  
                        "var total = 0;" +  
                        "for(var i=0;i<values.length;i++){" +  
                        "total += values[i].count;" +  
                        "}return {count:total};}";  
                String result2 = "resultCollection";  
                MapReduceOutput mapReduceOutput = coll.mapReduce(map,  
                    reduce.toString(), result2, null);  
                DBCollection resultColl = mapReduceOutput.getOutputCollection();  
                DBCursor cursor = resultColl.find();  
                while (cursor.hasNext()) {  
                  System.out.println(cursor.next());  
                }  
            result=true;  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
        return result;  
    }  
    /** 
     * 求和 
     * @return 
     */  
    public Boolean sum() {  
        Boolean result=false;  
        try{  
                DBCollection coll = mongoTemplate.getCollection("t_user");  
                String map = "function() { emit(this._class, {sum:this.age});}";  
                String reduce = "function(key, values) {" +  
                        "var total = 0;" +  
                        "for(var i=0;i<values.length;i++){" +  
                        "total += values[i].sum;" +  
                        "}return {sum:total};}";  
                String result2 = "resultCollection";  
                MapReduceOutput mapReduceOutput = coll.mapReduce(map,  
                    reduce.toString(), result2, null);  
                DBCollection resultColl = mapReduceOutput.getOutputCollection();  
                DBCursor cursor = resultColl.find();  
                while (cursor.hasNext()) {  
                    DBObject obj=cursor.next();  
                    System.out.println(obj.get("value"));  
                }  
            result=true;  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
        return result;  
    }  
    /** 
     * 最大值 
     * @return 
     */  
    public Boolean max() {  
        Boolean result=false;  
        try{  
            Query query =new Query();  
            query.with(new Sort(Direction.DESC, "age"));  
            query.limit(1);  
            User u=mongoTemplate.findOne(query, User.class);  
            System.out.println(u.getAge());  
            result=true;  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
        return result;  
    }  
    /** 
     * 最小值 
     * @return 
     */  
    public Boolean min() {  
        Boolean result=false;  
        try{  
            Query query =new Query();  
            query.with(new Sort(Direction.ASC, "age"));  
            query.limit(1);  
            User u=mongoTemplate.findOne(query, User.class);  
            System.out.println(u.getAge());  
            result=true;  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
        return result;  
    }  
    /** 
     * 平均值 
     * @return 
     */  
    public Boolean avg() {  
        Boolean result=false;  
        try{  
                DBCollection coll = mongoTemplate.getCollection("t_user");  
                String map = "function() { emit(this._class, {avg:this.age});}";  
                String reduce = "function(key, values) {" +  
                        "var total = 0;" +  
                        "for(var i=0;i<values.length;i++){" +  
                        "total += values[i].avg;" +  
                        "}return {avg:total/values.length};}";  
                String result2 = "resultCollection";  
                MapReduceOutput mapReduceOutput = coll.mapReduce(map,  
                    reduce.toString(), result2, null);  
                DBCollection resultColl = mapReduceOutput.getOutputCollection();  
                DBCursor cursor = resultColl.find();  
                while (cursor.hasNext()) {  
                    DBObject obj=cursor.next();  
                    System.out.println(obj.get("value"));  
                }  
            result=true;  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
        return result;  
    }  
}

Test类

public class TestMongoDB  {  
    private ClassPathXmlApplicationContext context;  
    UserService service=null;  
    public TestMongoDB() {  
        String configLocation = "spring-global.xml";  
        context = new ClassPathXmlApplicationContext(configLocation);  
        context.start();  
        service=(UserService)context.getBean("userService");  
    }  
    /** 
     * 添加一个对象 
     */  
      
    public void insertOne(){  
        User user =new User();  
        user.setId("4");  
        user.setName("333");  
        user.setAge(50);  
        user.setHeight(208.8d);  
        user.setType(1);  
        System.out.println(service.insert(user));  
    }  
    /** 
     * 删除一个对象 
     */  
      
    public void deleteOne(){  
        User user =new User();  
        for(Integer i=0;i<10;i++){  
            user.setId(i.toString());  
            System.out.println(service.delete(user));  
        }  
          
    }  
    /** 
     * 添加对象集合 
     */  
      
    public void insertAll(){  
        List<User> users=new ArrayList<User>();  
        User user =null;  
        for(Integer i=0;i<10;i++){  
            user=new User();  
            user.setId(i.toString());  
            user.setName("张"+i);  
            user.setAge(i);  
            user.setHeight(160d+i);  
            user.setType(i/2==0?0:1);  
            users.add(user);  
        }  
        System.out.println(service.insertAll(users));  
    }  
      
    public void Count(){  
        System.out.println(service.count());  
    }  
      
    public void Sum(){  
        System.out.println(service.sum());  
    }  
    @Test  
    public void Max(){  
        System.out.println(service.max());  
    }  
    public void Min(){  
        System.out.println(service.min());  
    }  
      
    public void Avg(){  
        System.out.println(service.avg());  
    }  
}


你可能感兴趣的:(springmvc+monggodb简单小例子)