Spring+SpringMVC+MongoDB案例

Posted 朱培

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring+SpringMVC+MongoDB案例相关的知识,希望对你有一定的参考价值。

---------------------------------------------------------------------------------------------
[版权申明:本文系作者原创,转载请注明出处] 
文章出处:http://blog.csdn.net/sdksdk0/article/details/64948728
作者:朱培      ID:sdksdk0     
--------------------------------------------------------------------------------------------

     MongoDB是一个NoSql数据库,MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。其存储结构为BSON。
下面是通过一个Spring+SpringMVC+MongoDB的案例来说明mongodb的基本使用。mongdb的基本结构这里就不再重复说明。从入门到应用。源码地址: https://github.com/sdksdk0/mongodbDemo
一、入门
MongoDB的提供了一个面向文档存储,  将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
首先从入门程序开始。
1、新建maven工程,导入mongodb的驱动包。
         <dependency>                         <groupId>org.mongodb</groupId>                         <artifactId>mongodb-driver</artifactId>                         <version>3.4.2</version>         </dependency>
2、连接数据库
                MongoClient  mongoClient=new MongoClient("127.0.0.1",27017);                   //连接到数据库                   MongoDatabase  mongoDatabase=mongoClient.getDatabase("tf");                   System.out.println("连接成功");
3、创建集合并获取集合                             mongoDatabase.createCollection("test");                   //System.out.println("创建集合成功");                                      //获取集合                   MongoCollection<Document> collection = mongoDatabase.getCollection("test");
4、插入文档           //插入文档       public static void createDocument(MongoCollection<Document> collection)                          Document  document=new Document("title","MongoDB")                  .append("description", "database")                  .append("likes", 100)                  .append("by", "Fly");             ArrayList<Document> documents = new ArrayList<Document>();             documents.add(document);             collection.insertMany(documents);             System.out.println("文档插入成功");                    

5、查询文档
      //查询文档       public  static void  findIterable(MongoCollection<Document>  collection)             FindIterable<Document>  findIterable=collection.find();             MongoCursor<Document> iterator = findIterable.iterator();             while(iterator.hasNext())                   System.out.println(iterator.next());                    



6、更新文档
    //更新文档       public  static void  updateMany(MongoCollection<Document>  collection)             collection.updateMany(Filters.eq("likes",100),new Document("$set",new Document("likes",200)));                          //查询文档             findIterable(collection);               7、删除文档
     //删除       public  static void deleteMany(MongoCollection<Document>  collection)             //删除符合条件的第一个文档                          collection.deleteOne(Filters.eq("likes",200));                          //删除所有符合条件的文档             collection.deleteMany(Filters.eq("likes",200));                          //查询文档             findIterable(collection);                 




二、应用
     这个案例的主要内容是,我们在spring中配置mongodb的数据源,如何可以添加修改删除和条件查询,因为是面向对象的,所以这里可以使用的是HQL语句来操作mongodb数据库。 这里主要用的是用户 userId 、name、age来演示。
1、web.xml配置
<? xml  version = "1.0"  encoding = "UTF-8" ?> < web-app  xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"        xmlns = "http://java.sun.com/xml/ns/javaee"  xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"        xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"        id = "sys"  version = "2.5" >        < description > mongo </ description >        < display-name > service Java Deploy V1.0.0 </ display-name >        < context-param >              < param-name > webAppRootKey </ param-name >              < param-value > mongo </ param-value >        </ context-param >        <!-- 加载log4j -->        < context-param >              < param-name > log4jConfigLocation </ param-name >              < param-value > /WEB-INF/classes/sysconfig/properties/log4j.properties              </ param-value >        </ context-param >        <!-- 加载xml config -->        < context-param >              < param-name > contextConfigLocation </ param-name >              < param-value > classpath*:syscoreConfig/*/*.xml             classpath:sysconfig/spring/*.xml             classpath:sysconfig/springmvc/*.xml              </ param-value >        </ context-param >        <!-- 编码 -->        < filter >              < filter-name > encodingFilter </ filter-name >              < filter-class > org.springframework.web.filter.CharacterEncodingFilter </ filter-class >              < init-param >                    < param-name > encoding </ param-name >                    < param-value > UTF-8 </ param-value >              </ init-param >              < init-param >                    < param-name > forceEncoding </ param-name >                    < param-value > true </ param-value >              </ init-param >        </ filter >        < filter-mapping >              < filter-name > encodingFilter </ filter-name >              < url-pattern > /* </ url-pattern >        </ filter-mapping >        <!-- 定义LOG4J监听器 -->        < listener >              < listener-class > org.springframework.web.util.Log4jConfigListener </ listener-class >        </ listener >        <!-- 监听 自动装配ApplicationContext的配置信息 -->        < listener >              < listener-class > org.springframework.web.context.ContextLoaderListener </ listener-class >        </ listener >        <!-- spring mvc -->        < servlet >              < servlet-name > springMvc </ servlet-name >              < servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class >              < init-param >                    < param-name > ContextConfigLocation </ param-name >                    < param-value > classpath:sysconfig/spring-servlet.xml </ param-value >              </ init-param >              < load-on-startup > 1 </ load-on-startup >        </ servlet >        < servlet-mapping >              < servlet-name > springMvc </ servlet-name >              < url-pattern > / </ url-pattern >        </ servlet-mapping >        < welcome-file-list >              < welcome-file > index.jsp </ welcome-file >        </ welcome-file-list > </ web-app >



2、spring-mvc.xml配置
扫描注解:
<!-- com.rui.pro.dao.*.impl/**,com.rui.pro.service.*.impl/**,com.rui.pro.controller/** -->        < context:component-scan  base-package = " **.dao.***,**.service.***,**.controller.**" />        < bean              class = "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" >              < property  name = "order"  value = "0"  />        </ bean >        < bean  id = "messageAdapter"              class = "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" >              < property  name = "messageConverters" 以上是关于Spring+SpringMVC+MongoDB案例的主要内容,如果未能解决你的问题,请参考以下文章

SpringMVC

SpringMVC+Mongo简单配置

MongoDB 地理定位与 Spring MVC 一起使用

Spring Boot 双数据源Mybatis+MongoDB配置

spring整合springMVCmybatishibernatemongodb框架

spring-mongo集成Demo