spring项目提供了对大数据的支持,Spring-data 项目,其中有关于Spring Data ForMongodb的,研究了一下,弄了个小示例参考一下。
application.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"> <mongo:mongo host="localhost" port="27017" /> <bean id="mongoTemplate" class="org.springframework.data.document.mongodb.MongoTemplate"> <constructor-arg ref="mongo" /> <constructor-arg name="databaseName" value="his" /> <constructor-arg name="defaultCollectionName" value="person" /> </bean> <bean id="personRepository" class="com.mongo.dao.impl.PersonRepository"> <property name="mongoTemplate" ref="mongoTemplate"></property> </bean> <context:annotation-config /> </beans>
Person.java
package com.nbey.data.forward.mongo.persistence; import java.io.Serializable; public class Person implements Serializable { private static final long serialVersionUID = 3617931430808763429L; private String id; private String name; private int age; public Person() { super(); } public Person(String id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } /** * @return the id */ public String getId() { return id; } /** * @param id the id to set */ public void setId(String id) { this.id = id; } /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the age */ public int getAge() { return age; } /** * @param age the age to set */ public void setAge(int age) { this.age = age; } /** * * @param name * @param age */ public Person(String name, int age) { super(); this.name = name; this.age = age; } public String toString() { return "Person[id="+id+",name="+name+",age="+age+"]"; } }
interface AbstractRepository.java
package com.nbey.data.forward.mongo.manager; import java.util.List; import com.nbey.data.forward.mongo.persistence.Person; public interface AbstractRepository { /** * *<b>function:</b>��Ӷ��� * @author cuiran * @createDate 2012-12-12 11:41:30 */ public void insert(Person person); /** * *<b>function:</b>���ID���Ҷ��� * @author cuiran * @createDate 2012-12-12 11:41:41 */ public Person findOne(String id); /** * *<b>function:</b>��ѯ���� * @author cuiran * @createDate 2012-12-12 16:26:06 */ public List<Person> findAll(); public List<Person> findByRegex(String regex); /** * *<b>function:</b>ɾ��ָ����ID���� * @author cuiran * @createDate 2012-12-12 16:26:16 */ public void removeOne(String id); /** * *<b>function:</b>ɾ������ * @author cuiran * @createDate 2012-12-12 16:25:40 */ public void removeAll(); /** * ͨ��ID�ҵ����� *<b>function:</b> * @author cuiran * @createDate 2012-12-12 16:25:51 */ public void findAndModify(String id); }
PersonRepository.java
package com.nbey.data.forward.mongo.manager.impl; 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 org.springframework.transaction.annotation.Transactional; import com.nbey.data.forward.mongo.manager.AbstractRepository; import com.nbey.data.forward.mongo.persistence.Person; @Transactional public class PersonRepository implements AbstractRepository { private MongoTemplate mongoTemplate; /* * (non-Javadoc) * * @see com.mongo.dao.AbstractRepository#findAll() */ @Override public List<Person> findAll() { // TODO Auto-generated method stub return getMongoTemplate().find(new Query(), Person.class); } /* * (non-Javadoc) * * @see com.mongo.dao.AbstractRepository#findAndModify(java.lang.String) */ @Override public void findAndModify(String id) { // TODO Auto-generated method stub // new Query(Criteria.where("id").is(id)), new Update().inc("age", 3) getMongoTemplate().updateFirst(new Query(Criteria.where("id").is(id)), new Update().inc("age", 3)); } /* * (non-Javadoc) * * @see com.mongo.dao.AbstractRepository#findByRegex(java.lang.String) */ @Override public List<Person> findByRegex(String regex) { // TODO Auto-generated method stub Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Criteria criteria = new Criteria("name").regex(pattern.toString()); return getMongoTemplate().find(new Query(criteria), Person.class); } /* * (non-Javadoc) * * @see com.mongo.dao.AbstractRepository#findOne(java.lang.String) */ @Override public Person findOne(String id) { // TODO Auto-generated method stub return getMongoTemplate().findOne( new Query(Criteria.where("id").is(id)), Person.class); } /* * (non-Javadoc) * * @see com.mongo.dao.AbstractRepository#insert(com.mongo.bean.Person) */ @Override public void insert(Person person) { // TODO Auto-generated method stub getMongoTemplate().insert(person); } /* * (non-Javadoc) * * @see com.mongo.dao.AbstractRepository#removeAll() */ @Override public void removeAll() { // TODO Auto-generated method stub List<Person> list = this.findAll(); if (list != null) { for (Person person : list) { getMongoTemplate().remove(person); } } } /* * (non-Javadoc) * * @see com.mongo.dao.AbstractRepository#removeOne(java.lang.String) */ @Override public void removeOne(String id) { // TODO Auto-generated method stub 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)); } } /** * @return the mongoTemplate */ public MongoTemplate getMongoTemplate() { return mongoTemplate; } /** * @param mongoTemplate * the mongoTemplate to set */ public void setMongoTemplate(MongoTemplate mongoTemplate) { this.mongoTemplate = mongoTemplate; } }
Main.java
package com.nbey.data.forward.mongo.startup; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.nbey.data.forward.mongo.manager.AbstractRepository; import com.nbey.data.forward.mongo.manager.impl.PersonRepository; import com.nbey.data.forward.mongo.persistence.Person; public class Main { private static Log log = LogFactory.getLog(Main.class.getName()); private AbstractRepository pr = null; public void init() { ApplicationContext ctx = new ClassPathXmlApplicationContext( "application.xml"); pr = (PersonRepository) ctx.getBean("personRepository"); } public void insert() { Person p = new Person("cuiran", 27); pr.insert(p); } public void findOne() { String id = "50c83cb552c2ceb0463177d6"; Person p = pr.findOne(id); log.debug(p); } public void listAll() { List<Person> list = pr.findAll(); for (Person p : list) { log.debug(p.toString()); } } public void start() { init(); insert(); listAll(); findOne(); } public static void main(String[] args) { // TODO Auto-generated method stub Main t = new Main(); t.start(); } }
相关推荐
spring-data-mongodb增强工具包,简化 CRUD 操作,提供类mybatis plus的数据库操作。传统关系型数据库及围绕它们构建的orm在项目开发中有很多难用的痛点,而mongodb这种文档性数据库的出现,完美的解决了sql数据库在...
- 添加依赖:在Maven或Gradle配置文件中添加Spring Data MongoDB和MongoDB Java驱动的依赖。 - 配置MongoDB连接:在Spring配置文件中指定MongoDB服务器的URL、端口、数据库名等信息。 - 创建MongoDBTemplate实例:...
- **Aggregation**:Spring Data MongoDB 提供了聚合操作的 API,支持 MongoDB 的聚合管道,使得开发者可以在 Java 代码中方便地构建和执行聚合操作。 5. **事件监听** - **MongoEventListener**:Spring Data ...
文档的标题为 "spring-data-mongodb-parent-reference",意味着这份PDF文档是关于如何使用Spring Data MongoDB的参考资料。文档的描述中提到该文档是2013年4月18日的版本,强调了官方文档的详细程度以及其对于Java...
springmvc与mongoDB集成需要下面几个的jar包:mongo-java-driver-3.0.1.jarspring-data-commons-1.10.0.RELEASE.jarspring-data-commons-core-1.4.1.RELEASE.jarspring-data-mongodb-1.7.0.RELEASE.jar已经打包在...
Spring Data MongoDB是一个强大的Java库,它为开发人员提供了一种简单而有效的方式来集成Spring应用程序与MongoDB数据库。这个"spring-data-mongodb1.2.0"版本是针对Spring Data MongoDB的1.2.0.RELEASE更新,它包含...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
在 Spring Data MongoDB 中,数据以 Java 对象的形式表示,通过 MongoDBTemplate 或 MongoRepository 进行操作。 三、Spring Data MongoDB 1.2.0.RELEASE 新特性 1. 改进的查询构造器:1.2.0.RELEASE 版本增强了...
Spring Data MongoDB API 是一个强大的Java库,用于简化与MongoDB数据库的交互。它作为Spring Data项目的一部分,提供了统一的编程模型,使得开发人员能够轻松地利用MongoDB的强大功能。Spring Data MongoDB API允许...
### Spring Data MongoDB 1.5.4 Reference Documentation #### 一、引言 Spring Data MongoDB 是 Spring Data 项目的一部分,旨在简化 MongoDB 数据访问,并提供一个一致的编程模型,该模型适用于 Spring ...
在本示例中,我们将深入探讨如何在Spring 3框架中集成Spring Data MongoDB 1.5.6,以便高效地处理MongoDB数据库。Spring Data MongoDB是Spring Data项目的一部分,它提供了一个面向对象的API,使得与NoSQL数据库...
标题中的"spring-data-mongodb-cross-store-1.3.5.RELEASE.zip"表明这是一个关于Spring Data MongoDB Cross Store的开源项目,版本为1.3.5.RELEASE。Spring Data是Spring框架的一部分,它提供了与各种数据存储进行...
java运行依赖jar包
Spring Data MongoDB是一个强大的Java库,它为开发人员提供了一种简单的方式来访问和操作MongoDB数据库。这个库是Spring Data框架的一部分,旨在简化数据访问层的实现,尤其在使用NoSQL数据库如MongoDB时。MongoDB...
spring-data-mongodb1.1.0.jar包
包括spring-data-mongodb-1.7.0.jar、spring-data-commons-1.10.0.RELEASE.jar、spring-data-commons-core-1.4.1.RELEASE.jar、mongo-java-driver-3.0.1.jar 对应支持的mongoDB版本为3.0.3,自己整理好的方便大家...
<artifactId>mongodb-driver-sync 版本号 ``` 接下来,配置MongoDB连接信息。在Spring Boot应用中,通常在application.properties或application.yml文件中配置MongoDB的相关属性,如数据库名、主机地址和端口...
spring-data-mongodb-encrypt 允许将任何字段都标记为@Encrypted以进行逐字段加密。 产品特点 透明地集成到spring-data-mongodb 支持嵌套的集合,地图和bean 高性能(无反射,优化了加密) 密钥版本控制(以帮助...
Spring Data为MongoDB提供了一个强大的抽象层,使得开发者可以轻松地在Java应用中集成和操作MongoDB。 Spring Data MongoDB的核心概念是Repository抽象,它允许开发者定义自定义的查询方法,而无需编写SQL或MongoDB...