MongoDB 学习(三)MongoDB 和 Spring 整合(Maven)
一、MongoDB 和 Spring 整合(Maven)
1、相关 jar 包准备

2、用 Maven 创建项目,pom.xml 文件
<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>com.test.web</groupId>
<artifactId>study-maven</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>study-maven Maven Webapp</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding> <!-- spring版本号 -->
<spring.version>4.1.9.RELEASE</spring.version>
<org.mybatis.version>3.4.1</org.mybatis.version>
<org.mybatis.spring.version>1.3.0</org.mybatis.spring.version>
</properties> <dependencies>
<!--驱动包-->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.13.0-rc2</version>
</dependency>
<!--核心包-->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.8.2.RELEASE</version>
</dependency>
<!--依赖-->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
<version>1.10.0.RELEASE</version>
</dependency> <!-- 添加spring核心依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency> </dependencies>
<build>
<finalName>study-maven</finalName>
</build>
</project>
3、spring-config.xml 配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd"> <!--1.开启注解-->
<context:annotation-config/> <!--2.自动扫描-->
<context:component-scan base-package="com.mongodb"/> <!--3.服务器连接信息-->
<mongo:mongo host="localhost" port="27017"/> <!--4.创建mongoTemplate模板-->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongo"/>
<!-- 设置使用的数据库 名-->
<constructor-arg name="databaseName" value="station"/>
</bean> </beans>
4、pojo 类
Product 类
package com.mongodb.pojo; /**
* @author zt1994 2018/3/12 10:43
*/
public class Product {
private String id;
private String productName;
private Integer productNum; public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getProductName() {
return productName;
} public void setProductName(String productName) {
this.productName = productName;
} public Integer getProductNum() {
return productNum;
} public void setProductNum(Integer productNum) {
this.productNum = productNum;
} @Override
public String toString() {
return "Product{" +
"id='" + id + '\'' +
", productName='" + productName + '\'' +
", productNum=" + productNum +
'}';
}
}
5、dao 层
IProductDao 接口:
package com.mongodb.dao; import com.mongodb.pojo.Product; import java.util.List; /**
* @author zt1994 2018/3/12 10:45
*/
public interface IProductDao {
/**
* 添加产品
* @param product
*/
void addProduct(Product product); /**
* 删除产品
* @param id
*/
void removeProduct(String id); /**
* 保存或修改产品
* @param product
*/
void saveOrUpdateProduct(Product product); /**
* 查询单个产品
* @param id
* @return
*/
Product findById(String id); /**
* 查询所有产品
* @return
*/
List<Product> findAll();
}
ProductDaoImpl 实现类:
package com.mongodb.dao.impl; import com.mongodb.dao.IProductDao;
import com.mongodb.pojo.Product;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Repository; import java.util.List; /**
* @author zt1994 2018/3/12 10:46
*/
@Repository
public class ProductDaoImpl implements IProductDao { @Autowired
private MongoTemplate mongoTemplate; public void addProduct(Product product) {
//1.如果没有指定集合,则默认添加到和对象名称相同的集合中,没有则创建一个
//2.也可以指定集合 mongoTemplate.save(product, "product_db");
mongoTemplate.save(product);
} public void removeProduct(String id) {
Product product = findById(id);
mongoTemplate.remove(product);
} public void saveOrUpdateProduct(Product product) {
mongoTemplate.save(product);
} public Product findById(String id) {
return mongoTemplate.findById(id, Product.class);
} public List<Product> findAll() {
return mongoTemplate.findAll(Product.class);
}
}
6、测试
package com.mongodb.test; import com.mongodb.dao.IProductDao;
import com.mongodb.pojo.Product;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.List; /**
* @author zt1994 2018/3/12 10:52
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-config.xml")
public class TestProductDao { @Autowired
private IProductDao productDao; /**
* 测试添加产品
*/
@Test
public void testAddProduct(){
Product product = new Product();
product.setProductName("测试新增");
product.setProductNum(3);
productDao.addProduct(product);
} /**
* 测试查找所有产品
*/
@Test
public void testFindAll(){
List<Product> productList = productDao.findAll();
for (Product product : productList) {
System.out.println(product);
}
} /**
* 测试通过id查找产品
*/
@Test
public void testFindId(){
Product product = productDao.findById("5aa5f3d9b735172bc3a617c1");
System.out.println(product);
} /**
* 测试更新产品
*/
@Test
public void testUpdateProduct(){
Product product = productDao.findById("5aa5f3d9b735172bc3a617c1");
System.out.println(product);
product.setProductName("测试修改");
product.setProductNum(5);
this.productDao.saveOrUpdateProduct(product);
Product product2 = productDao.findById("5aa5f3d9b735172bc3a617c1");
System.out.println(product2);
}
}
MongoDB 学习(三)MongoDB 和 Spring 整合(Maven)的更多相关文章
- MyBatis学习(三)---MyBatis和Spring整合
想要了解MyBatis基础的朋友可以通过传送门: MyBatis学习(一)---配置文件,Mapper接口和动态SQL http://www.cnblogs.com/ghq120/p/8322302. ...
- elasticSearch+spring 整合 maven依赖详解
摘自:http://www.mayou18.com/detail/nTxPQSyu.html [Elasticsearch基础]elasticSearch+spring 整合 maven依赖详解 Ma ...
- MongoDB学习笔记:MongoDB 数据库的命名、设计规范
MongoDB学习笔记:MongoDB 数据库的命名.设计规范 第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ ...
- MongoDB系列:四、spring整合mongodb,带用户验证
在前面的两篇博客 MongoDB常用操作练习.springboot整合mongoDB的简单demo中,我们基本上熟悉了mongodb,也把它与spring boot进行了整合并且简单使用.在本篇博客中 ...
- Spring框架学习(4)spring整合hibernate
内容源自:spring整合hibernate spring整合注解形式的hibernate 这里和上一部分学习一样用了模板模式, 将hibernate开发流程封装在ORM层提供的模板类Hiber ...
- Spring(三):Spring整合Hibernate
背景: 本文主要介绍使用spring-framework-4.3.8.RELEASE与hibernate-release-5.2.9.Final项目整合搭建的过程. 开发环境简介: 1).jdk 1. ...
- Mybatis学习(六)————— Spring整合mybatis
一.Spring整合mybatis思路 非常简单,这里先回顾一下mybatis最基础的根基, mybatis,有两个配置文件 全局配置文件SqlMapConfig.xml(配置数据源,全局变量,加载映 ...
- Spring学习笔记六:Spring整合Hibernate
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6785323.html 前言:整合概述 Spring整合Hibernate主要是把Hibernate中常用的S ...
- Spring框架学习(5)spring整合struts2
内容源自:spring整合struts2 一.spring框架对struts等表现层框架的整合原理 : 使用spring的ioc容器管理struts中用于处理请求的Action 将Action配置成i ...
- Struts2学习笔记——Struts2与Spring整合
Struts2与Spring整合后,可以使用Spring的配置文件applicationContext.xml来描述依赖关系,在Struts2的配置文件struts.xml来使用Spring创建的 ...
随机推荐
- Spring定时任务执行
备注:这个是基于搭建好spring的环境下的 注解方式: 1.定时任务类 package com.test;import java.util.Date;import org.springframewo ...
- pandas筛选数据。
https://jingyan.baidu.com/article/0eb457e508b6d303f0a90572.html 假如我们想要筛选D列数据中大于0的行:df[df['D']>0] ...
- leetcode-812-Largest Triangle Area
题目描述: You have a list of points in the plane. Return the area of the largest triangle that can be fo ...
- HTML-常用标签与表格标签
超链接标签: <a href="超链接地址" target="_blank">超链接的文字</a> _blank或new是在新网页中打开 ...
- LOJ6500. 「雅礼集训 2018 Day2」操作(哈希+差分)
题目链接 https://loj.ac/problem/6500 题解 区间取反 \(01\) 串的经典套路是差分.我们令 \(b_i = a_i\ {\rm xor}\ a_{i - 1}\)(\( ...
- QT 相关
Qt是一个GUI框架,在GUI程序中,主线程也叫GUI线程,因为它是唯一被允许执行GUI相关操作的线程.对于一些耗时的操作,如果放在主线程中,就是出现界面无法响应的问题. 解决方法一:在处理耗时操作中 ...
- overload_protect_config.txt
overload_protection_switch=Y reject_uri_list= reject_request_percent=50 period_time=10 period_max_fa ...
- C# DataTable 用法
1.创建DataTable DataTable dataTable = new DataTable(); //创建一个空表 2.创建DataRow DataRow row = dataTable.Ne ...
- Revit二次开发_快速显示隐藏剖面框
最近遇到一种状况需要经常切换剖面框的可见性,于是想将剖面框的显示与隐藏做成一个按钮,方便切换. 其他类似元素想做成快速切换可见性应该可以使用类似做法. 这次的隐藏对象是剖面框,所以我直接就隐藏元素了. ...
- db2 monitor event
1.创建事件监控器至少需要哪些权限? DBADM authority SQLADM authority 2.事件监控器的种类有哪些? 3. db2 flush event monitor eventm ...