MongoDB和Spring整合,根据开发文档找到对应的版本
Spring Data Document 1.x binaries requires JDK level 6.0 and above, and Spring Framework 3.0.x and above.
In terms of document stores, MongoDB preferably version 1.6.5 or later or CouchDB 1.0.1 or later are required.
根据官方文档知道Spring必须是3.0.x或以上的版本,MongoDB必须是1.6.5以上的版本才行。
要想整合Spring和Mongodb必须下载相应的jar,这里主要是用到两种jar一种是spring-data-document和spring-data-commons两种类型的jar但是两种类型的jar版本必须匹配以免引起jar的冲突因为commons后面的版本jar目录有所改变所有版本必须要对应好下面是jar下载地址
http://www.springsource.org/spring-data/mongodb
http://www.springsource.org/spring-data/commons
下面是我下载的jar还有就是添加mongodb java驱动包,spring jar添加我就不多说了
Spring配置文件如下:
<?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">
<mongo:mongo host="localhost" port="27017">
</mongo:mongo>
<bean id="mongoTemplate" class="org.springframework.data.document.mongodb.MongoTemplate">
<constructor-arg ref="mongo"/>
<constructor-arg name="databaseName" value="db"/>
<constructor-arg name="defaultCollectionName" value="person" />
</bean>
<bean id="personRepository" class="com.mongo.repository.PersonRepository">
<property name="mongoTemplate" ref="mongoTemplate"></property>
</bean>
</beans>
添加实体类:
package com.mongo.entity;
public class Person {
private String id;
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person(){
}
public Person(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person[id="+id+",name="+name+",age="+age+"]";
}
}
定义增删查改的接口
package com.mongo.intf;
import java.util.List;
import com.mongo.entity.Person;
public interface AbstractRepository {
public void insert(Person person);
public Person findOne(String id);
public List<Person> findAll();
public List<Person> findByRegex(String regex);
public void removeOne(String id);
public void removeAll();
public void findAndModify(String id);
}
实现接口类:
package com.mongo.repository;
import java.util.List;
import java.util.regex.Pattern;
import org.springframework.data.document.mongodb.MongoTemplate;
import org.springframework.data.document.mongodb.query.Criteria;
import org.springframework.data.document.mongodb.query.Query;
import org.springframework.data.document.mongodb.query.Update;
import com.mongo.entity.Person;
import com.mongo.intf.AbstractRepository;
public class PersonRepository implements AbstractRepository{
private MongoTemplate mongoTemplate;
@Override
public List<Person> findAll() {
return getMongoTemplate().find(new Query(), Person.class);
}
@Override
public void findAndModify(String id) {
getMongoTemplate().updateFirst(new Query(Criteria.where("id").is(id)), new Update().inc("age", 3));
}
@Override
public List<Person> findByRegex(String regex) {
Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
Criteria criteria = new Criteria("name").regex(pattern.toString());
return getMongoTemplate().find(new Query(criteria), Person.class);
}
@Override
public Person findOne(String id) {
return getMongoTemplate().findOne(new Query(Criteria.where("id").is(id)), Person.class);
}
@Override
public void insert(Person person) {
getMongoTemplate().insert(person);
}
@Override
public void removeAll() {
List<Person> list = this.findAll();
if(list != null){
for(Person person : list){
getMongoTemplate().remove(person);
}
}
}
@Override
public void removeOne(String id){
Criteria criteria = Criteria.where("id").in(id);
if(criteria == null){
Query query = new Query(criteria);
if(query != null && getMongoTemplate().findOne(query, Person.class) != null)
getMongoTemplate().remove(getMongoTemplate().findOne(query, Person.class));
}
}
public MongoTemplate getMongoTemplate() {
return mongoTemplate;
}
public void setMongoTemplate(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
}
添加一个测试类就可以测试以上的方法了
分享到:
相关推荐
在这个项目中,“mongodb整合spring、hibernate、mysql”意味着开发者将MongoDB作为NoSQL数据库,Spring作为应用的管理和数据访问层,而Hibernate则用于处理MySQL的关系型数据库操作。这样的集成允许应用同时利用两...
### Spring 整合 MongoDB 数据库配置详解 #### 一、前言 在现代软件开发过程中,集成NoSQL数据库如MongoDB已成为一种趋势,特别是在需要处理大量非结构化数据的应用场景中。Spring框架作为Java领域中非常流行的...
在本文中,我们将深入探讨如何使用Java操作MongoDB并结合Spring框架进行整合。MongoDB是一个流行的NoSQL数据库,它以JSON格式存储数据,适合处理大量非结构化或半结构化数据。Spring框架则是一个强大的Java企业级...
本文将深入探讨如何整合Spring框架与MongoDB,以实现高效的数据存储和检索。 首先,Spring Data MongoDB是Spring框架的一个模块,它提供了与MongoDB集成的简单API和ORM(对象关系映射)功能。Spring Data MongoDB...
本项目整合了这四个技术,使得开发者可以在Java Web应用程序中高效地利用MongoDB作为非关系型数据库,Spring作为依赖注入和管理容器,Struts作为前端控制器,Spring Data MongoDB则简化了对MongoDB的操作。...
当我们将MongoDB与Spring整合时,可以充分利用Spring的依赖注入和数据访问抽象,简化MongoDB在Java应用中的使用。 首先,整合MongoDB与Spring的关键在于Spring Data MongoDB模块,它提供了对MongoDB的数据访问支持...
当我们将MongoDB与Spring整合时,可以利用Spring的强大功能来简化MongoDB的使用,提高开发效率。本整合包正是针对这一需求而准备的,它包含了实现MongoDB与Spring集成所需的所有组件。 首先,我们需要了解MongoDB-...
总之,MongoDB与Spring的整合涉及配置MongoDB连接、创建MongoTemplate实例,以及利用Spring Data MongoDB的Repository模式进行数据访问。正确配置和使用这些组件,可以帮助开发者快速构建高效、灵活的MongoDB驱动的...
项目整合Spring和MongoDB,主要涉及以下几个核心模块: 1. **数据访问层**:Spring Data MongoDB模块提供了与MongoDB的集成,包括MongoTemplate和MongoRepository接口,使得操作MongoDB就像操作传统JDBC一样简单。...
在整合Spring和MongoDB时,你需要以下核心组件: 1. **MongoDB Java驱动**:这是与MongoDB服务器通信的基础,提供了连接、查询、更新等操作。在本实例中,包含的jar包应包含此驱动。 2. **Spring Data MongoDB**:...
使用spring mvc + spring data mongodb + mongodb +spring 整合,支持html压缩,支持mongodb用户登录,重写了spring的MongoTemplate支持更多方式,重写MongoTemplate支持切换数据库,支持mongodb集群。spring版本为...
这个例子中的"spring-springMVC-mongodb整合"是一个很好的学习和实践项目,可以帮助开发者深入理解这些技术的结合使用。通过这样的整合,开发者能够构建出更加灵活、适应现代互联网需求的应用程序。
在IT行业中,Spring Boot和MongoDB的整合是一个常见的任务,特别是在构建微服务或者快速开发Web应用时。Spring Boot简化了Spring应用的初始设置,而MongoDB则作为一个强大的NoSQL数据库,提供非结构化数据的存储解决...
当我们谈论“Spring-MongoDB整合”时,这意味着我们要将Spring框架与MongoDB数据库集成,以便在Java应用中充分利用MongoDB的优势。 首先,我们需要理解Spring Data MongoDB项目,它是Spring Data模块的一部分,旨在...
在本文中,我们将深入探讨如何将Spring框架与MongoDB数据库进行整合,并且会结合源码进行分析,以帮助你理解其工作原理。Spring是Java领域广泛使用的轻量级框架,而MongoDB则是一种非关系型数据库(NoSQL),两者...
【标题】:“maven(jersey+redis+mongodb+spring)集成” 在现代软件开发中,集成多种技术栈是常见的需求。"maven(jersey+redis+mongodb+spring)集成"指的是使用Maven作为项目构建工具,将Jersey用于RESTful API开发...
Spring与MongoDB的整合主要涉及以下几个关键组件: 1. **MongoTemplate**:这是Spring Data MongoDB提供的核心模板类,用于执行MongoDB的各种操作,如查询、更新、插入等。MongoTemplate提供了对数据库操作的抽象,...
自己开发能跑的项目 spring-data-mongodb整合spring-boot
当我们需要将Spring与MongoDB整合时,目的是利用Spring的优秀管理和组织能力来操作MongoDB的数据存储。 首先,我们要了解Spring Data MongoDB项目,这是Spring框架对MongoDB支持的一部分。Spring Data MongoDB提供...