文档章节

【Spring MVC + MongoDB】增删改

guquanjiang
 guquanjiang
发布于 2014/11/13 17:02
字数 676
阅读 141
收藏 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
2018/06/11
0
0
MongoDB —— 使用Spring Data MongoDB操作数据库

本文代码示例参见:https://gitee.com/imlichao/MongoDB-example 我们使用Spring Data MongoDB可以方便的在Spring boot项目中操作MongoDB 文档地址:https://docs.spring.io/spring-boot/do...

哼_哼
01/10
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

没有更多内容

加载失败,请刷新页面

加载更多

全面理解Java内存模型(JMM)及volatile关键字

理解Java内存区域与Java内存模型 Java内存区域 Java虚拟机在运行程序时会把其自动管理的内存划分为以上几个区域,每个区域都有的用途以及创建销毁的时机,其中蓝色部分代表的是所有线程共享的...

亭子happy
3分钟前
0
0
Prometheus监控mysql实例--centos7安装mysql_exporter

目录 概述 环境准备 普罗米修斯简介 mysql安装 mysqld_exporter安装 启动参数列表 概述 prometheus(普罗米修斯) 是一个开源系统监控和报警工具包,许多公司和组织都采用了Prometheus,该项目...

java_龙
9分钟前
3
0
拥有2000家门店,他如何晋升为服装界的新宠?

摘要: —— iwarm3.0加热组件、碳纳米管膜炎、管状石墨结构体...你看到并不是一款高科技电子产品,这是快鱼服饰在这个冬天推出的黑科技产品 - 智能温控羽绒服。 在竞争激烈的服装行业,快鱼...

阿里云云栖社区
11分钟前
0
0
不忘初心 砥砺前行-智和信通2018年年会报道

1月18日,智和信通以“不忘初心 砥砺前行”为主题的2018总结会议暨2019年年会在京召开。年会以总经理李少龙的讲话为开场,充分肯定了全体员工2018年的工作和成绩,并表达了公司产品智和网管平...

智和网管平台
20分钟前
0
0
NGINX api网关

以谁为师
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部