文档章节

【Spring MVC + MongoDB】增删改

guquanjiang
 guquanjiang
发布于 2014/11/13 17:02
字数 676
阅读 132
收藏 4
点赞 0
评论 0

mongodb.properties

env=dev

#===============================测试环境====================================
#mongodb
dev.mongodb.host=127.0.0.1
dev.mongodb.port=222



applicationContext.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/data/mongo     
	http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd     
	http://www.springframework.org/schema/beans     
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">     
	<context:component-scan base-package="com.guqj.mongodb" />
	
	<context:property-placeholder location="classpath:mongodb.properties" />
	
	<bean id="mongo" class="org.springframework.data.mongodb.core.MongoFactoryBean">
	   <property name="host" value="${${env}.mongodb.host}" />
	   <property name="port" value="${${env}.mongodb.port}" />
	</bean>  
          
	<!-- mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 -->  
	<mongo:db-factory dbname="user" mongo-ref="mongo" />
    
	<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">     
		<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />     
	</bean>     
    
	<mongo:mapping-converter base-package="com.guqj.mongodb.model" />
	<mongo:repositories base-package="com.guqj.mongodb.dao.impl" />
	<context:annotation-config />  
</beans>



UserDao.java
@Transactional
public interface UserDao {

	public void _test();

	/**
	 * 创建collection
	 */
	public void createCollection();

	/**
	 * 分页
	 * 
	 * @param skip
	 * @param limit
	 * @return
	 */
	public List<User> findList(int skip, int limit);

	/**
	 * 根据age查询
	 * 
	 * @param age
	 * @return
	 */
	public List<User> findListByAge(int age);

	/**
	 * 根据ID查询User
	 * 
	 * @param id
	 * @return
	 */
	public User findOne(String id);

	/**
	 * 根据名字查询User
	 * 
	 * @param username
	 * @return
	 */
	public User findOneByUsername(String username);

	/**
	 * 新增
	 * 
	 * @param entity
	 */
	public void insert(User entity);

	/**
	 * 更新
	 * 
	 * @param entity
	 */
	public void update(User entity);

	/**
	 * 统计
	 * 
	 * @return
	 */
	public long count();

	/**
	 * 根据ID删除
	 * 
	 * @param id
	 */
	public void deleteById(String id);

	/**
	 * 删除Collection
	 */
	public void deleteAll(String collection);
	
	public List<User> findList();
}



UserDAOImpl.java
@Repository
public class UserDAOImpl implements UserDao {

	@Autowired
	private MongoTemplate mongoTemplate;

	@Override
	public void _test() {
		Set<String> colls = this.mongoTemplate.getCollectionNames();
		for (String coll : colls) {
			System.out.println("CollectionName=" + coll);
		}
		DB db = this.mongoTemplate.getDb();
		System.out.println("db=" + db.toString());
	}

	@Override
	public void createCollection() {
		if (!mongoTemplate.collectionExists(User.class)) {
			mongoTemplate.createCollection(User.class);
		}
	}

	@Override
	public List<User> findList(int skip, int limit) {
		Query query = new Query();
		query.addCriteria(Criteria.where("age").gt(10)).addCriteria(Criteria.where("zone").is("上海"));
		query.with(new Sort(new Sort.Order(Direction.ASC, "_id")));
		query.skip(skip).limit(limit);
		return mongoTemplate.find(query, User.class);
	}
	
	public List<User> findList() {
		Query query = new Query();
		query.addCriteria(Criteria.where("age").gt(10)).addCriteria(Criteria.where("zone").is("上海"));
		query.with(new Sort(new Sort.Order(Direction.ASC, "_id")));
		return mongoTemplate.find(query, User.class);
	}

	@Override
	public List<User> findListByAge(int age) {
		Query query = new Query();
		query.addCriteria(new Criteria("age").is(age));
		return mongoTemplate.find(query, User.class);
	}

	@Override
	public User findOne(String id) {
		Query query = new Query();
		query.addCriteria(new Criteria("id").is(id));
		return mongoTemplate.findOne(query, User.class);
	}

	@Override
	public User findOneByUsername(String username) {
		Query query = new Query();
		query.addCriteria(new Criteria("username").is(username));
		return mongoTemplate.findOne(query, User.class);
	}

	@Override
	public void insert(User entity) {
		mongoTemplate.insert(entity);
	}

	@Override
	public void update(User entity) {
		Query query = new Query();
		query.addCriteria(new Criteria("_id").is(entity.getId()));
		Update update = new Update();
		update.set("age", entity.getAge());
		update.set("password", entity.getPassword());
		update.set("zone", entity.getZone());
		update.set("special", entity.getSpecial());
		update.set("works", entity.getWorks());
		update.set("username", entity.getUsername());
		this.mongoTemplate.updateFirst(query, update, User.class);
	}

	@Override
	public long count() {
		return mongoTemplate.count(null, "user");
	}

	@Override
	public void deleteById(String id) {
		Query query = new Query();
		query.addCriteria(Criteria.where("_id").is(id));
		mongoTemplate.remove(query, User.class);
	}

	@Override
	public void deleteAll(String collection) {
		mongoTemplate.dropCollection(collection);
	}



© 著作权归作者所有

共有 人打赏支持
guquanjiang
粉丝 4
博文 10
码字总数 9544
作品 0
浦东
程序员
Spring boot中mongodb的使用

mongodb的增删改查 Spring Boot对各种流行的数据源都进行了封装,当然也包括了mongodb,下面给大家介绍如何在spring boot中使用mongodb: 1、pom包配置 pom包里面添加spring-boot-starter-dat...

glen_xu
06/11
0
0
spring MVC 整合mongodb

Spring Mongodb 目录 1 SPRING整合MONGODB 1 1.1 环境准备 1 1.2 包依赖 1 1.3 配置 2 2 案列 5 2.1 SPRING MVC整合MONGODB代码案例 5 1 Spring整合Mongodb 1.1 环境准备 1. mongodb官网 ht...

浅夏
2014/03/13
0
0
MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据

看到下图,是通过Jqgrid实现表格数据的基本增删查改的操作。表格数据增删改是一般企业应用系统开发的常见功能,不过不同的是这个表格数据来源是非关系型的数据库MongoDB。nosql虽然概念新颖,...

李长春
2011/09/02
0
0
Spring Mongodb入门

安装Spring for Mongodb Spring项目为方便对Mongodb的操作,建立了spring-data的子项目,地址在: http://www.springsource.org/spring-data/mongodb,目前版本是1.0.0M2阶段,已支持对Mongo...

李长春
2011/11/14
0
2
MongoDB在spring中xml传统配置

背景 旧项目中依然在使用springmvc的xml传统配置,最近需要使用MongoDB,需要在spring引入MongoDB的连接配置。 解决 配置mongodb数据库 配置mongodb数据工厂 配置mongodb的Template 配置mon...

亚林瓜子
06/12
0
0
Spring从MongoDB中下载文件之GridFS

问题 之前提到过以GridFS方式上传问题到MongoDB中:Spring保存文件到MongoDB之GridFS支持。现在需要从Mongodb中读取文件,应该怎么处理类? 解决 Maven 注解mongoDbFactory 获取文件流 Note...

亚林瓜子
06/12
0
0
Mongodb File Server 1.0.1,基于 Spring Boot 2.0.3

Mongodb File Server 更新到1.0.1,基于Spring Boot 2.0.3。详细更新如下: MongoDB 3.6.4 Spring Boot 2.0.3.RELEASE Spring Data MongoDB 2.0.8.RELEASE Spring 5.0.7.RELEASE Thymeleaf 3......

waylau
07/01
0
0
Spring+Mongodb实战(持续更新中...)

本人文笔很烂请见谅,欢迎吐槽和各种拍砖!分享快乐! 1.准备工作 Spring Data MongoDB spring-data-mongodb是Spring对Monodb进行封装的Spring-Data项目的分支。点击上面的链接获取最新版。 ...

lee5hx
2014/03/29
0
2
MongoDB学习笔记(二) 通过samus驱动实现基本数据操作

传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于...

李长春
2011/09/02
0
0
Mongodb与spring集成(3)------MongoRepository实现增删改查和复杂查询(转)

与HibernateRepository类似,通过继承MongoRepository接口,我们可以非常方便地实现对一个对象的增删改查,要使用Repository的功能,先继承MongoRepository<T, TD>接口,其中T为仓库保存的b...

挨踢职业人
2012/02/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
2
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
1
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
1
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
今天
2
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
1
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
2
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
1
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部