文档章节

【Spring MVC + MongoDB】增删改

guquanjiang
 guquanjiang
发布于 2014/11/13 17:02
字数 676
阅读 136
收藏 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);
	}



© 著作权归作者所有

共有 人打赏支持
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

没有更多内容

加载失败,请刷新页面

加载更多

ReentrantLock_可重入

package cunrent;import java.util.Calendar;import java.util.concurrent.locks.ReentrantLock;public class TestReentrantLock { public static void main(String[] args......

noteman
34分钟前
2
0
CentOS7下安装mysql5.7

1、安装YUM Repo 由于CentOS 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件。 wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm 然后进行repo的安...

JungleKing
42分钟前
2
0
DevExpress v18.1新版亮点——DevExtreme篇(三)

用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExtreme JavaScript Controls v18.1 的新功能,快来下载试用新版本!点击下载...

Miss_Hello_World
43分钟前
1
0
LoadRunner 安装

如果安装LoadRunner 11时弹窗提示"Micosoft Visual C++ 2005 SP1 可再发行组件包(X86):'命令行选项语法错误。键入命令 / ? 可获得帮助信息'"。或者弹窗提示"此计算机缺少 vc2005_sp1_wit...

ww1234
52分钟前
1
0
两个时间段相隔自然月Util

public class DateUtil { public static int getDay(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calend......

木九天
55分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部