Spring Data MongoDB实战(上)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Spring Data MongoDB实战(上),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4592字,纯文字阅读大概需要7分钟。
内容图文
![Spring Data MongoDB实战(上)](/upload/InfoBanner/zyjiaocheng/456/be8b97289db24ae58a605c51564dd9e0.jpg)
Spring Data MongoDB实战(上)
作者:chszs,版权所有,未经同意,不得转载。博主主页:http://blog.csdn.net/chszs
本文会详细展示Spring Data MongoDB是如何访问MongoDB数据库的。MongoDB是一个开源的文档型NoSQL数据库,而Spring Data MongoDB是Spring Data的模块之一,专用于访问MongoDB数据库。Spring Data MongoDB模块既提供了基于方法名的查询方式,也提供了基于注释的查询方式。
1、用Spring Data配置并管理MongoDB
要安装MongoDB数据库,可以从这里下载:https://www.mongodb.org/downloads
安装过程省略。完成MongoDB的安装和运行后,可以开始应用开发了。
首先在Eclipse创建一个简单的Maven项目,并配置pom.xml管理Spring Data MongoDB项目的依赖。内容如下:
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SpringDataMongoDBDemo</groupId>
<artifactId>SpringDataMongoDBDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.7.2.RELEASE</version>
</dependency>
</dependencies>
</project>
Eclipse会下载所需的JAR包并把依赖关系配置到项目的类路径下。现在项目的依赖关系已经完成导入,可以开始编写实际的代码了。
首先创建需要持久化到MongoDB数据库的实体类。
Person.java
package com.ch.jpa.entity;
import java.util.ArrayList;
import java.util.List;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.PersistenceConstructor;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "person")
public class Person {
@Id
private Long personId;
private String name;
private int age;
@DBRef(db = "address")
private List<Address> addresses = new ArrayList<>();
public Person() {
}
@PersistenceConstructor
public Person(Long personId, String name, int age) {
super();
this.personId = personId;
this.name = name;
this.age = age;
}
public Long getPersonId() {
return personId;
}
public void setPersonId(Long personId) {
this.personId = personId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public List<Address> getAddresses() {
return addresses;
}
public void setAddresses(List<Address> addresses) {
this.addresses = addresses;
}
@Override
public String toString() {
return "Person [personId=" + personId + ", name=" + name + ", age=" + age + ", addresses=" + addresses + "]";
}
}
注释@Document表示待持久化的数据是一个集合。如果集合没有指定名字,那么默认会使用实体类的类名作为集合名。
注释@Id表示被注解的域被映射到集合中的_id列。如果实体类中未使用此注释,那么默认名为id的域会被映射到集合中的_id列。而且此域的值由MongoDB的驱动包自动产生,它的值在在POJO中是不可用的。
注释@DBRef用于在当前的实体类中引用已有的实体类。然而,与关系数据库的情况不同,如果我们保存当前实体,它不会保存引用的相关实体。引用的相关实体的持久化是分开的。
注释@PersistenceConstructor用于标记从MongoDB数据库服务器取回数据时创建实体的构造方法。
下面是关联的Address实体类:
Address.java
package com.ch.jpa.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.PersistenceConstructor;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "address")
public class Address {
@Id
private long addressId;
private String address;
private String city;
private String state;
private long zipcode;
public Address() {
System.out.println("CAlling default cons");
}
@PersistenceConstructor
public Address(long addressId, String address, String city, String state, long zipcode) {
super();
this.addressId = addressId;
this.address = address;
this.city = city;
this.state = state;
this.zipcode = zipcode;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public long getZipcode() {
return zipcode;
}
public void setZipcode(long zipcode) {
this.zipcode = zipcode;
}
@Override
public String toString() {
return "Address [address=" + address + ", city=" + city + ", state=" + state + ", zipcode=" + zipcode + "]";
}
}
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。
Spring Data MongoDB实战(上)
标签:mongodb springdata
本文系统来源:http://blog.csdn.net/chszs/article/details/48015457
内容总结
以上是互联网集市为您收集整理的Spring Data MongoDB实战(上)全部内容,希望文章能够帮你解决Spring Data MongoDB实战(上)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。