`
chenhua_1984
  • 浏览: 1251200 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

java 操作mongodb

    博客分类:
  • java
阅读更多

   Person.java

/**
 * Person.java
 * 版权所有(C) 2012 
 * 创建:cuiran 2012-12-12 11:37:16
 */
package com.spring.mongo.domain;

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 RepositoryManager.java 

package com.spring.mongo.services;

import java.util.List;

import com.spring.mongo.domain.Person;

public interface RepositoryManager {

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

}

 PersonRepositoryImpl.java 

package com.spring.mongo.services.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 com.spring.mongo.domain.Person;
import com.spring.mongo.services.RepositoryManager;

public class PersonRepositoryImpl implements RepositoryManager {

	  private MongoTemplate mongoTemplate;   

	@Override
	public List<Person> findAll() {
		// TODO Auto-generated method stub
		return getMongoTemplate().find(new Query(), Person.class);   

	}

	@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().update("age", 3));
		Query query = new Query();
		query.addCriteria(Criteria.where("id").is(id));
		Person p = getMongoTemplate().findOne(query, Person.class);
		p.setAge(4);
		getMongoTemplate().save(p);
	}

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

	}
	@Override
	public Person findOne(String id) {
		// TODO Auto-generated method stub
		 return getMongoTemplate().findOne(new Query(Criteria.where("id").is(id)), Person.class);   

	}

	@Override
	public void insert(Person person) {
		// TODO Auto-generated method stub
		getMongoTemplate().insert(person);   
	}

	@Override
	public void removeAll() {
		// TODO Auto-generated method stub
		List<Person> list = this.findAll();   
        if(list != null){   
            for(Person person : list){   
                getMongoTemplate().remove(person);   
            }   
        }   

	}

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

	}

	public MongoTemplate getMongoTemplate() {
		return mongoTemplate;
	}

	public void setMongoTemplate(MongoTemplate mongoTemplate) {
		this.mongoTemplate = mongoTemplate;
	}

}

 SpringMongoTest.java 

/**
 * MongoTest.java
 * 版权所有(C) 2012 
 * 创建:cuiran 2012-12-12 11:54:30
 */
package com.spring.mongo.main;

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.spring.mongo.domain.Person;
import com.spring.mongo.services.RepositoryManager;
import com.spring.mongo.services.impl.PersonRepositoryImpl;

public class SpringMongoTest {

	private static Log log = LogFactory.getLog(SpringMongoTest.class.getName());

	private RepositoryManager pr = null;

	public void init() {
		log.debug("开始启动");
		ApplicationContext ctx = new ClassPathXmlApplicationContext(
				"applicationContext.xml");
		pr = (PersonRepositoryImpl) ctx.getBean("personRepository");

	}

	public void insert() {
		for (int i = 1001; i < 10000; i++) {
			Person p = new Person("cuiran" + i, i);
			pr.insert(p);
		}
		log.debug("添加成功");
	}

	public void findOne() {
		String id = "517630b710239ca2d4d828a3";
		Person p = pr.findOne(id);
		log.debug(p);
	}

	public void listAll() {

		List<Person> list = pr.findAll();
		log.debug("查询结果如下:");
		for (Person p : list) {
			log.debug(p.toString());
		}

	}

	public void delete() {
		pr.removeOne("517630b710239ca2d4d828e8");
	}

	public void update() {
		pr.findAndModify("517630b710239ca2d4d828a3");
	}

	public void start() {
		init();
		delete();
		insert();
		listAll();
		update();
		findOne();
	}

	public static void main(String[] args) {
		SpringMongoTest t = new SpringMongoTest();
		t.start();
	}

}

 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:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mongo="http://www.springframework.org/schema/data/mongo"
	xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
       http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd">
    
    <context:annotation-config />
       
	<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.dao.impl.PersonRepository">   
        <property name="mongoTemplate" ref="mongoTemplate"></property>   
    </bean>   
    
    <mongo:mongo host="127.0.0.1" port="27017"/>

</beans>

 log4j.properties

log4j.rootLogger=INFO,CONSOLE
log4j.category.com.mongo=DEBUG,messageWeb

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss}\:%p %c - %m%n


log4j.appender.messageWeb=org.apache.log4j.DailyRollingFileAppender
log4j.appender.messageWeb.File=D:/logs/mongo.log
log4j.appender.messageWeb.DatePattern = '.'yyyy-MM-dd.'log'
log4j.appender.messageWeb.layout=org.apache.log4j.PatternLayout
log4j.appender.messageWeb.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] %m%n
log4j.appender.messageWeb.encoding= UTF-8

 

分享到:
评论
3 楼 zyh_1986 2013-05-14  
文章不错,关键是没有只言片语的讲解,这种博客对于想入门或刚入门的人来说意义不大
2 楼 chenhua_1984 2013-05-08  
DanielHan 写道
什么是mongodb?

NO SQL的一种,现在比较流行的,做大数据用,通常和hadoop结合
1 楼 DanielHan 2013-05-07  
什么是mongodb?

相关推荐

    java操作mongodb存储文件实例

    将一系列图片文件存储到MongoDB中 java操作mongodb存储文件

    java 操作mongodb 增删改查

    以上就是Java操作MongoDB的基本步骤。这个“mongodb_helloworld”项目应该包含示例代码,帮助初学者快速上手。记得在实际应用中,你需要处理异常并适当地关闭MongoClient,以避免资源泄漏: ```java mongoClient....

    Mongodb + GridFS +Java 操作Mongodb中存储的文件

    在这个Java操作MongoDB中存储的文件实例中,我们将探讨如何利用GridFS API进行文件的存取。 首先,我们需要在Java项目中引入MongoDB的驱动库。目前,Java驱动通常使用的是MongoDB Java Driver,可以在Maven仓库中...

    java操作mongoDB(CRUD)

    Java操作MongoDB主要涉及到的是Java驱动程序与MongoDB数据库之间的交互,这涵盖了创建连接、执行CRUD(创建、读取、更新、删除)操作等一系列基本的数据库管理任务。MongoDB是一个流行的NoSQL数据库,以其灵活性、高...

    java操作mongodb示例分享

    Java操作MongoDB是一种常见的数据交互方式,特别是在Java后端开发中。MongoDB是一个NoSQL数据库,以其灵活性、高性能和易扩展性而受到欢迎。在Java中,我们可以使用MongoDB的Java驱动程序来与MongoDB进行通信。以下...

    JAVA操作MongoDB简单增删改查

    以上就是使用Java操作MongoDB的基本步骤。在实际项目中,你可能需要处理更复杂的查询和事务,以及错误处理和连接池管理等高级话题。学习更多关于MongoDB的官方文档和社区资源,如CSDN博客...

    Java操作MongoDB实例

    Java操作MongoDB实例,压缩包内为完整项目源码,使用MyEclipse软件 见文:https://blog.csdn.net/qq_33427869/article/details/87270444

    java操作mongoDB实现文件上传预览打包下载

    对于"java操作mongoDB实现文件上传预览打包下载"这个主题,我们将深入探讨如何利用Java与MongoDB交互,实现文件的上传、下载、预览以及打包下载等功能。 首先,我们需要在Java项目中引入MongoDB的驱动库,通常是...

    Java操作MongoDB之CRUD(增删改查)

    这篇博文“Java操作MongoDB之CRUD(增删改查)”主要探讨了如何使用Java驱动程序来执行基本的数据库操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 首先,我们来了解MongoDB的Java驱动...

    java操作mongodb的工具类

    java操作mongodb的工具类,增删查改方法

    JAVA操作MongoDB之spring整合

    在本文中,我们将深入探讨如何使用Java操作MongoDB并结合Spring框架进行整合。MongoDB是一个流行的NoSQL数据库,它以JSON格式存储数据,适合处理大量非结构化或半结构化数据。Spring框架则是一个强大的Java企业级...

    Java操作mongoDB使用文档.docx(16页.docx

    以上就是使用Java操作MongoDB的基本步骤。在实际应用中,你可能需要处理更复杂的查询和更新,以及错误处理、连接管理等。MongoDB提供了丰富的查询表达式,如`$gt`, `$lt`, `$in`, `$exists`等,以及聚合框架和地理...

    java操作mongodb的demo(带驱动jar)

    Java操作MongoDB是一种常见的数据交互方式,特别是在大数据和分布式系统中。MongoDB是一个高性能、开源、无模式的文档型数据库,而Java作为广泛使用的编程语言,提供了丰富的库和API来与MongoDB进行交互。本Demo提供...

    Java操作MongoDB数据库示例分享

    为了更深入地了解如何使用Java操作MongoDB,你需要学习以下知识点: 1. **MongoDB Java驱动程序**:了解如何添加驱动程序依赖,以及如何创建`MongoClient`实例来连接到MongoDB服务器。 2. **数据模型**:理解...

    JAVA操作MongoDB

    ### JAVA操作MongoDB知识点详解 #### 1. Java操作MongoDB简介 MongoDB是一种面向文档的NoSQL数据库,它提供了灵活的文档模型和高性能的读写操作,非常适合处理大量的数据和快速迭代的开发环境。而Java是一种广泛...

    java操作mongodb

    Java 操作 MongoDB 是一个常见的需求,特别是在开发基于 Java 的应用程序时需要存储和检索非结构化数据。本篇文章将深入探讨如何使用 Java SDK 来与 MongoDB 进行交互,包括基本的增、删、改、查操作。 首先,要...

Global site tag (gtag.js) - Google Analytics