search
HomeDatabaseMysql TutorialSpring Data MongoDB实战

本文会详细展示Spring Data MongoDB是如何访问MongoDB数据库的。MongoDB是一个开源的文档型NoSQL数据库,而Spring Data MongoDB是

本文会详细展示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

4.0.0 SpringDataMongoDBDemo SpringDataMongoDBDemo 0.0.1-SNAPSHOT org.springframework.data spring-data-mongodb 1.7.2.RELEASE

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
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
getAddresses() { return addresses; } public void setAddresses(List
addresses) { this.addresses = addresses; } @Override public String toString() { return "Person [personId=" + personId + ",, 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 + "]"; } }

Spring Data 的详细介绍:请点这里
Spring Data 的下载地址:请点这里

本文永久更新链接地址

linux

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Explain the InnoDB Buffer Pool and its importance for performance.Explain the InnoDB Buffer Pool and its importance for performance.Apr 19, 2025 am 12:24 AM

InnoDBBufferPool reduces disk I/O by caching data and indexing pages, improving database performance. Its working principle includes: 1. Data reading: Read data from BufferPool; 2. Data writing: After modifying the data, write to BufferPool and refresh it to disk regularly; 3. Cache management: Use the LRU algorithm to manage cache pages; 4. Reading mechanism: Load adjacent data pages in advance. By sizing the BufferPool and using multiple instances, database performance can be optimized.

MySQL vs. Other Programming Languages: A ComparisonMySQL vs. Other Programming Languages: A ComparisonApr 19, 2025 am 12:22 AM

Compared with other programming languages, MySQL is mainly used to store and manage data, while other languages ​​such as Python, Java, and C are used for logical processing and application development. MySQL is known for its high performance, scalability and cross-platform support, suitable for data management needs, while other languages ​​have advantages in their respective fields such as data analytics, enterprise applications, and system programming.

Learning MySQL: A Step-by-Step Guide for New UsersLearning MySQL: A Step-by-Step Guide for New UsersApr 19, 2025 am 12:19 AM

MySQL is worth learning because it is a powerful open source database management system suitable for data storage, management and analysis. 1) MySQL is a relational database that uses SQL to operate data and is suitable for structured data management. 2) The SQL language is the key to interacting with MySQL and supports CRUD operations. 3) The working principle of MySQL includes client/server architecture, storage engine and query optimizer. 4) Basic usage includes creating databases and tables, and advanced usage involves joining tables using JOIN. 5) Common errors include syntax errors and permission issues, and debugging skills include checking syntax and using EXPLAIN commands. 6) Performance optimization involves the use of indexes, optimization of SQL statements and regular maintenance of databases.

MySQL: Essential Skills for Beginners to MasterMySQL: Essential Skills for Beginners to MasterApr 18, 2025 am 12:24 AM

MySQL is suitable for beginners to learn database skills. 1. Install MySQL server and client tools. 2. Understand basic SQL queries, such as SELECT. 3. Master data operations: create tables, insert, update, and delete data. 4. Learn advanced skills: subquery and window functions. 5. Debugging and optimization: Check syntax, use indexes, avoid SELECT*, and use LIMIT.

MySQL: Structured Data and Relational DatabasesMySQL: Structured Data and Relational DatabasesApr 18, 2025 am 12:22 AM

MySQL efficiently manages structured data through table structure and SQL query, and implements inter-table relationships through foreign keys. 1. Define the data format and type when creating a table. 2. Use foreign keys to establish relationships between tables. 3. Improve performance through indexing and query optimization. 4. Regularly backup and monitor databases to ensure data security and performance optimization.

MySQL: Key Features and Capabilities ExplainedMySQL: Key Features and Capabilities ExplainedApr 18, 2025 am 12:17 AM

MySQL is an open source relational database management system that is widely used in Web development. Its key features include: 1. Supports multiple storage engines, such as InnoDB and MyISAM, suitable for different scenarios; 2. Provides master-slave replication functions to facilitate load balancing and data backup; 3. Improve query efficiency through query optimization and index use.

The Purpose of SQL: Interacting with MySQL DatabasesThe Purpose of SQL: Interacting with MySQL DatabasesApr 18, 2025 am 12:12 AM

SQL is used to interact with MySQL database to realize data addition, deletion, modification, inspection and database design. 1) SQL performs data operations through SELECT, INSERT, UPDATE, DELETE statements; 2) Use CREATE, ALTER, DROP statements for database design and management; 3) Complex queries and data analysis are implemented through SQL to improve business decision-making efficiency.

MySQL for Beginners: Getting Started with Database ManagementMySQL for Beginners: Getting Started with Database ManagementApr 18, 2025 am 12:10 AM

The basic operations of MySQL include creating databases, tables, and using SQL to perform CRUD operations on data. 1. Create a database: CREATEDATABASEmy_first_db; 2. Create a table: CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY, titleVARCHAR(100)NOTNULL, authorVARCHAR(100)NOTNULL, published_yearINT); 3. Insert data: INSERTINTObooks(title, author, published_year)VA

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools