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());
![](https://image.cha138.com/20220802/29c2eed4ed6e460eac0e4170cf899193.jpg)
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 Boot 双数据源Mybatis+MongoDB配置