ItGo.me - 专注IT技术分享

首页 > Spring > spring配置 > Mongodb数据库入门之Spring Mongodb

Mongodb数据库入门之Spring Mongodb

时间:2016-07-25来源:网友分享 点击:

  【IT168 技术】在上一篇教程中,我们学习了如何使用Mongodb 的JAVA API对Mongodb进行相关的数据库操作,在本文中,将学习使用Spring for Mongodb去简化对Mongodb的操作。

  安装Spring for Mongodb

  Spring项目为方便对Mongodb的操作,建立了spring-data的子项目,地址在:

  ,目前版本是1.0.0M2阶段,已支持对Mongodb的一系列基本操作。我们先从中下载相关的包:spring-data-document-1.0.0.M2.zip,下载解压后,将解压后的四个JAR文件放到工程路径的lib库中,本文中还将使用Spring 3.0.4的版本,请读者自行下载配置。

  Spring Mongodb的配置

  目前,可以有两种方式对Spring mongodb进行配置。第一种是使用Spring 3中的注解,另外一种是使用传统的XML配置。下面分别进行讲解:

  使用Spring 3中的注解

  首先在配置类中,要继承AbstractMongoConfiguration类,代码如下:

  

  package com.mkyong.config;

  import org.springframework.context.annotation.Bean;

  import org.springframework.context.annotation.Configuration;

  import com.mongodb.Mongo;

  /**

  * Spring MongoDB configuration file

  */

  @Configuration

  public class SpringMongoConfig extends AbstractMongoConfiguration {

  @Override

  public @Bean Mongo mongo() throws Exception {

  return new Mongo(localhost);

  @Override

  public @Bean MongoTemplate mongoTemplate() throws Exception {

  return new MongoTemplate(mongo(),yourdb,yourCollection);


  这里,引入了MongoTemplate模版类,并且使用对连接数据库的地址,数据库名和collection进行了初始化。

  在调用Spring Mongodb配置时,只需要在需要使用的类中调用AnnotationConfigApplicationContext,传入刚才配置好的SpringMongoConfig类即可。如下代码所示:

  

  ApplicationContext

  ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);

  MongoOperations

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


  当获得了mongoOperation对象的实例后,即可进行对mongodb的相关操作。

  使用XML配置文件

  使用XML配置文件的方法如下:

  

  xml version=1.0 encoding=?>

  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

  

  

  

  

  >

  mongo:mongo host=localhost port=27017 />

  bean

  constructor-arg ref=mongo />

  constructor-arg name=databaseName value=yourdb />

  constructor-arg name=defaultCollectionName value=yourCollection />

  bean>

  context:annotation-config />

  beans>


  注意这里引用相关的命名空间xmlns:mongo=http://www.springframework.org/schema/data/mongo

  ,并且在名为mongoTemplate中注入相关的数据库地址,数据库名即可,使用方法如下:

  

  ApplicationContext ctx = new GenericXmlApplicationContext(mongo-config.xml);


  使用Spring Mongodb实现增删改查操作

  下面通过实例讲解如何使用Spring Mongodb实现增删改查操作,假设我们现在有一个实

  体类user如下:

  

  package com.mkyong.user;

  public class User {

  private String id;

  private String firstname;

  private String lastname;

  private int age;

  //getter and setter methods


  接下来,我们看具体的操作代码,如下,这里假设要将user类保存到名为userprofile的数据集中。

  

  package com.mkyong.core;

  import java.util.List;

  import org.springframework.context.ApplicationContext;

  import org.springframework.context.annotation.AnnotationConfigApplicationContext;

  import org.springframework.context.support.GenericXmlApplicationContext;

  import com.mkyong.config.SpringMongoConfig;

  import com.mkyong.user.User;

  public class App

  public static void main( String[] args )

  ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);

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

  User user = new User(1001, yong, mook kim, 30);

  //保存

  mongoOperation.save(userprofile,user);

  //查找

  User savedUser = mongoOperation.findOne(userprofile,

  new Query(Criteria.where(id).is(1001)),

  User.class);

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

  //更新

  mongoOperation.updateFirst(userprofile,

  new Query(Criteria.where(firstname).is(yong)),

  Update.update(lastname, new lastname));

  User updatedUser = mongoOperation.findOne(userprofile,

  new Query(Criteria.where(id).is(1001)),

  User.class);

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

  //删除

  mongoOperation.remove(userprofile,

  new Query(Criteria.where(id).is(1001)),

  User.class);

  //显示当前列表

  ListUser> listUser =

  mongoOperation.getCollection(userprofile, User.class);

  System.out.println(Number of user = + listUser.size());


  输出结果如下:

  

  savedUser : User [id=1001, firstname=yong, lastname=mook kim, age=30]

  updatedUser : User [id=1001, firstname=yong, lastname=new lastname, age=30]

  Number of user = 0


  Spring mongodb插入数据

  下面详细讲解如何使用spring mongodb插入数据。在spring mongodb中,插入数据到

  mongodb有如下几种方法:

  

  User user = new User(...);

  //将user对象保存到user这个collection中

  mongoOperation.save(user);

  //将user对象保存到new collection这个collection中

  mongoOperation.save(new collection,user);

  //将user对象保存到user这个collection中

  mongoOperation.insert(user);

  //将user对象保存到new collection这个collection中

  mongoOperation.insert(new collection, user);

  //将user的对象列表(List)保存到usercollection中去

  mongoOperation.insertList(userInList);

  //将user的对象列表(List)保存到new collectioncollection中去


spring mvc 配置运行报错误

Caused by: java.lang.IllegalArgumentException: @EnableAsync annotation metadata was not injected...

Java中Spring获取bean方法小结

本篇内容主要为大家讲解的是Java中Spring获取bean方法小结。感兴趣的同学可以参考学习下,具体内容如下:...

Mongodb数据库入门之Spring Mongodb

Mongodb数据库入门之Spring Mongodb...

Mongodb数据库入门之Spring Mongodb
------分隔线----------------------------