`

Spring Data MongoDB hello world example

阅读更多

spring data mongodb简单的例子 及项目源代码

连接mondodb数据库代码的配置类--原生态的

写道
package com.mkyong.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;

import com.mongodb.Mongo;

@Configuration
public class SpringMongoConfig extends AbstractMongoConfiguration {

@Override
public String getDatabaseName() {
return "xuehan";
}

@Override
@Bean
public Mongo mongo() throws Exception {
return new Mongo("localhost");
}
}

 连接mondodb数据库代码的配置类--spring封装的

package com.mkyong.config;
 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
 
import com.mongodb.Mongo;
 
@Configuration
public class SpringMongoConfig {
 
	public @Bean
	MongoDbFactory mongoDbFactory() throws Exception {
		return new SimpleMongoDbFactory(new Mongo(), "xuehan");
	}
 
	public @Bean
	MongoTemplate mongoTemplate() throws Exception {
 
		MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory());
 
		return mongoTemplate;
 
	}
 
 
 
}
上面的方法比较好用,因为spring已经对他进行了很好的封装
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:db-factory dbname="xuehan" />
 
	<bean id="mongoTemplate" 
                class="org.springframework.data.mongodb.core.MongoTemplate">
		<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
	</bean>
 
</beans>
  不解释你懂的
package com.mkyong.user;
 
public class User {
 
	String username;
	String password;
 
	public User(String username, String password) {
		this.username = username;
		this.password = password;
	}
 
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
 
	@Override
	public String toString() {
		return "User [username=" + username + ", password=" + password + "]";
	}
 
}
 简单的增删改查
package com.mkyong.core;

import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;

import com.mkyong.config.SpringMongoConfig;
import com.mkyong.user.User;

public class App {

	public static void main(String[] args) {
		// For XML 通过xml文件的形式得到mogodb操作类
		// ApplicationContext ctx = new
		// GenericXmlApplicationContext("mongo-config.xml");

		// For Annotation 通过注解的形式得到mogodb操作类
		ApplicationContext ctx = new AnnotationConfigApplicationContext(
				SpringMongoConfig.class);

		MongoOperations mongoOperation = (MongoOperations) ctx
				.getBean("mongoTemplate");

		User user = new User("xuehan", "password123");

		// 把user保存到user集合中
		mongoOperation.save(user, "users");

		// find
		User savedUser = mongoOperation.findOne(
				new Query(Criteria.where("username").is("xuehan")), User.class,
				"users");

		System.out.println("savedUser : " + savedUser);

		// update
		mongoOperation.updateMulti(
				new Query(Criteria.where("username").is("xuehan")),
				Update.update("password", "new password"), "users");

		// find
		User updatedUser = mongoOperation.findOne(
				new Query(Criteria.where("username").is("xuehan")), User.class,
				"users");

		System.out.println("updatedUser : " + updatedUser);

		// delete
		mongoOperation.remove(
				new Query(Criteria.where("username").is("xuehan")), "users");

		// List
		List<User> listUser = mongoOperation.findAll(User.class, "users");
		System.out.println("Number of user = " + listUser.size());

	}

}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics