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

	}

}
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章