【IT168 专稿】当前,NOSQL时代其实已经来临,在NOSQL的大家族中,MongoDB以其可扩展性强,性能高以及开源占据了重要的地位。在MongoDB中,存储数据的方式不再是关系型数据库,而是以象JSON格式那样进行存储,所以可以称为文档型的NOSQL。本文将以一个实际的例子,介绍如何运用Spring开源框架下的Spring Data数据存取框架结合MongoDB,创建一个简单的CRUD应用(增删改查)。本文要求读者有一定的MongoDB和Spring的基础知识。 关于Spring Data For MongoDB 大家对Spring 框架应该是相当熟悉了,而Spring data 则是spring新推出的一套方便开发者对关系数据库以及NOSQL进行存取开发的基于spring的API框架。而其中的一个分支Spring Data for MongoDB则是专门为MongoDB度身订造的用于方便开发者对MongoDB进行操作的一组API。如果开发者熟悉Spring开发的话,则可以很容易地使用Spring Data for MongoDB进行开发。在Spring Data For MongoDB中,比如封装了MongoTemplate,这个模板工具类有点象JDBCTemplate工具类,可以很方便地进行MongoDB的常用操作。它其中包括能在文档对象和POJO中做对应的关联映射,还有异常的封装都跟spring是一个体系的,而且对对象的查询更新等,都可以依旧使用开发者熟悉的比如Query,Criteria等进行数据库的查询等操作,此外,还可以使用JPA对MongoDB进行操作。开发者可以在如下的地址下载Spring for MongoDB:http://www./download/community 安装MongoDB 下面我们快速安装MongoDB,如果用户已经熟悉如何安装MongoDB,则可以跳过本小节,直接进入下一小节。 c:\mongodb\bin\mongod.exe –dbpath c:\mongodb\data\db 1) 下载最新版本的MongoDB,解压缩到某个目录,比如c:\mongodb 2) mongodb需要一个目录去存放数据,mongodb默认的数据存放目录为c:\data\db,但我们可以随意指定目录去存放数据,这里我们指定c:\mongodb\data\db去存放数据。 3) 接下来是启动的工作,到命令行方式下输入如下指令: c:\mongodb\bin\mongod.exe –dbpath c:\mongodb\data\db 要注意的是,如果路径中含有空格,则需要使用双引号包括起来,如: c:\mongodb\bin\mongod.exe –dbpath“c:\mongodb\data\db store place” 如果要以服务的形式在windows中启动,请参考下面地址中的介绍: http://docs./manual/tutorial/install-mongodb-on-windows/ 使用Spring Data For Mongodb创建应用 接下来,我们开始创建一个简单的CRUD功能的JAVA应用,首先要在工程的lib目录下,添加上Spring Data For Mongodb中相关的lib包。我们将工程命名为NatureStore, 步骤1 创建POJO 代码如下: package com.orangeslate.naturestore.domain; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document public class Tree { @Id private String id; private String name; private String category; private int age; public Tree(String id, String name, int age) { this.id = id; this.name = name; this.age = age; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age + ", category=" + category + "]"; } } 这里创建了一个Tree的POJO,并且充分使用了Spring 的注解功能,可以看到, @Document注解,表示这个POJO最终要持久化为MongoDB中的document,@id 指出了需要持久化的@id。 |
|