spring 就是NB,很快找到spring配置mongodb的解决方案:spring-data
本文如题,让我们轻松通过spring来管理mongodb的各种操作。
该文章主要参考spring的官方实例文档:spring-data-mongodb-hello-world-example:http://www.mkyong.com/mongodb/spring-data-mongodb-hello-world-example/
想看原著的同学可以借鉴哈,写的相当不错!
我们可以通过Spring Data for MongoDB 框架的两种方式来配置mongodb: XML配置文件 and 注解(annotation)来进行CRUD 操作
使用工具:
- Spring Data MongoDB – 1.0.0.M2
- Spring Core – 3.0.5.RELEASE
- Java Mongo Driver – 2.5.2
- Eclipse – 3.5
- JDK – 1.6
- Maven2
该项目源码是spring官方提供的,可通过maven来构建项目,使用起来非常方便!哥们的附件里会提供源码供大家下载。
不过现在maven还没有引入mongodb相关的jar文件,所以请在http://www.springsource.org/spring-data/mongodb自行下载并引入项目,附件里我也会给大家提供。
如果你已经把源码准备好了,现在我们继续:
一,通过spring有两种方式引入mongodb:
1.通过注解(Annotation):
文件:SpringMongoConfig.java
package com.mkyong.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.document.mongodb.MongoTemplate;
import org.springframework.data.document.mongodb.config.AbstractMongoConfiguration;
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");
}
}
慢慢发现通过注解配置这些还是很方便的,不常改的配置直接写类里而不麻烦xml配置文件不是很爽?
使用的时候也非常方便:
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
MongoOperations mongoOperation = (MongoOperations)ctx.getBean("mongoTemplate");
相信大家都能看懂。
到这点你应该能发现MongoOperations 是主要干事的了
2.通过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: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">
<!-- Default bean name is 'mongo' -->
<mongo:mongo host="localhost" port="27017" />
<bean id="mongoTemplate"
class="org.springframework.data.document.mongodb.MongoTemplate">
<constructor-arg ref="mongo" />
<constructor-arg name="databaseName" value="yourdb" />
<constructor-arg name="defaultCollectionName" value="yourCollection" />
</bean>
<!-- To translate any MongoExceptions thrown in @Repository annotated classes -->
<context:annotation-config />
</beans>
标准的spring环境配置。
使用:
ApplicationContext ctx = new GenericXmlApplicationContext("mongo-config.xml");
二。使用模型:
User:
package com.mkyong.user;
public class User {
private String id;
private String firstname;
private String lastname;
private int age;
//getter and setter methods
}
不需要任何注解的!
三。CRUD操作:
Full example to show you how to use Spring data to perform CRUD operations in mongoDB. The “user” object is saved into a collection named “userprofile“, under “yourdb” database.
这个实例给大家展示了spring data通过mongoDB进行的CRUD 操作。"user"对象被操作在“userprofile“集合(可理解为表)中,“yourdb”数据库下。
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 org.springframework.data.document.mongodb.MongoOperations;
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.mkyong.config.SpringMongoConfig;
import com.mkyong.user.User;
public class App
{
public static void main( String[] args )
{
//For Annotation
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
//For XML
//ApplicationContext ctx = new GenericXmlApplicationContext("mongo-config.xml");
MongoOperations mongoOperation = (MongoOperations)ctx.getBean("mongoTemplate");
User user = new User("1001", "yong", "mook kim", 30);
//save
mongoOperation.save("userprofile",user);
//find
User savedUser = mongoOperation.findOne("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
System.out.println("savedUser : " + savedUser);
//update
mongoOperation.updateFirst("userprofile",
new Query(Criteria.where("firstname").is("yong")),
Update.update("lastname", "new lastname"));
//find
User updatedUser = mongoOperation.findOne("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
System.out.println("updatedUser : " + updatedUser);
//delete
mongoOperation.remove("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
//List
List<User> listUser =
mongoOperation.getCollection("userprofile", User.class);
System.out.println("Number of user = " + listUser.size());
}
}
运行看看吧。。。
旅途愉快!
分享到:
相关推荐
- 添加依赖:在Maven或Gradle配置文件中添加Spring Data MongoDB和MongoDB Java驱动的依赖。 - 配置MongoDB连接:在Spring配置文件中指定MongoDB服务器的URL、端口、数据库名等信息。 - 创建MongoDBTemplate实例:...
赠送jar包:mongodb-driver-sync-4.2.3.jar; 赠送原API文档:mongodb-driver-sync-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-sync-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-sync-4.2.3....
赠送jar包:mongodb-driver-core-4.2.3.jar; 赠送原API文档:mongodb-driver-core-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-core-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-core-4.2.3....
赠送jar包:mongodb-driver-sync-4.2.3.jar; 赠送原API文档:mongodb-driver-sync-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-sync-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-sync-4.2.3....
文档的标题为 "spring-data-mongodb-parent-reference",意味着这份PDF文档是关于如何使用Spring Data MongoDB的参考资料。文档的描述中提到该文档是2013年4月18日的版本,强调了官方文档的详细程度以及其对于Java...
spring-data-mongodb-referrence-docs-1.9.4
标题中的"spring-data-mongodb-cross-store-1.3.5.RELEASE.zip"表明这是一个关于Spring Data MongoDB Cross Store的开源项目,版本为1.3.5.RELEASE。Spring Data是Spring框架的一部分,它提供了与各种数据存储进行...
- **MongoEntity**:Spring Data MongoDB 使用注解来定义对象如何映射到 MongoDB 文档。例如,`@Document` 注解标识一个类为 MongoDB 的文档实体,`@Id` 用于指定主键字段。 - **Field 映射**:`@Field` 注解用于...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
MongoDB Community Server(mongodb-org-server_5.0.4_amd64.deb)适用于适用于Debian10 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是...
与`mongodb-driver-core-3.5.0.jar`一同使用的还有`bson-3.5.0.jar`和`mongodb-driver-3.5.0.jar`。`bson-3.5.0.jar`包含BSON库,它是Binary JSON的缩写,是MongoDB用于数据存储和传输的二进制格式。它提供了将JSON...
MongoDB Community Server(mongodb-org-server-5.0.8-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。...
`mongodb-linux-x86_64-rhel70-4.2.5.tgz`是一个专为RHEL 7.0系统设计的MongoDB二进制包,版本为4.2.5。 首先,安装MongoDB需要确保系统满足最低要求,例如兼容的Linux内核版本、足够的内存以及适当的硬件配置。...
MongoDB Community Server(mongodb-org-server-5.0.4-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。...
mongodb-linux-x86_64-4.0.10.tgz的下载 mongodb-linux-x86_64-4.0.10.tgz的下载 mongodb-linux-x86_64-4.0.10.tgz的下载
Studio3T mac 加 data-man-mongodb-ent-2019.3.0.jar
MongoDB Community Server(mongodb-linux-x86_64-rhel70-5.0.4.tgz)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 ...
mongodb-windows-x86_64-7.0.5-signed.msi 数据库构建工具
- 配置环境变量:在`~/.bashrc`或`~/.bash_profile`文件中添加`export PATH=<mongodb-install-dir>/bin:$PATH`,然后运行`source ~/.bashrc`或`source ~/.bash_profile`。 - 启动MongoDB:`mongod --dbpath /data/...