文档章节

【Spring MVC + MongoDB】增删改

guquanjiang
 guquanjiang
发布于 2014/11/13 17:02
字数 676
阅读 138
收藏 4

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);
	}



© 著作权归作者所有

共有 人打赏支持
上一篇: Git常用命令
guquanjiang
粉丝 5
博文 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

没有更多内容

加载失败,请刷新页面

加载更多

揭秘 | 双11逆天记录背后的数据库技术革新

摘要: 第十个天猫“双11”狂欢节圆满落幕,如今双11已不仅仅是天猫的盛会,更是阿里技术人的新年 每一个数字背后 都需要强大的技术支撑 Higher, Faster, Smarter 是我们不变的追求 技术无边...

阿里云云栖社区
19分钟前
4
0
element ui中的input组件不能监听键盘事件解决

vue使用element-ui的el-input监听不了键盘事件,原因应该是element-ui自身封装了一层div在input标签外面,把原来的事件隐藏了,所以如下代码运行是无响应的: <el-input v-model="search" p...

呵呵闯
21分钟前
3
0
Linux常用中间件启动命令

zookeeper redis lts

王桥修道院副院长
22分钟前
1
0
Kotlin极简教程中对? extends 和 ? super (out和int)的描述

PECS 现在问题来了:我们什么时候用extends什么时候用super呢?《Effective Java》给出了答案: PECS: producer-extends, consumer-super 比如,一个简单的Stack API: public class Stack<E...

SuShine
23分钟前
1
0
微信分享link问题

前提:公司业务,分享的页面需要自定义并且是一个固定页面 因此自定义分享link,这里存在一个问题,必须与安全域名一致,自不必说,而且这个link必须是当有协议的,也就是说不能写成locatio...

litCabbage
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部