一、简介
在这篇文章中,我们将演示如何利用强大的Spring Data JPA API 与数据库交互,本课的内存H2 数据库。
Spring Data JPA 提供了一组非常强大且高度抽象的接口,用于与任何底层数据库进行交互。数据库可以是 MySQL、MongoDB、Elasticsearch 或任何其他支持的数据库。Spring Data JPA 的其他优势包括:
- 支持基于 JPA 约定构建扩展存储库
- 内置分页支持和动态查询执行
- 支持基于 XML 的实体映射
在本例中,我们将使用 H2 内存数据库。数据库的选择不应影响我们将构建的 Spring Data 定义,因为这是 Spring Data JPA 提供的主要优势。它使我们能够将数据库查询与应用程序逻辑完全分离。
2. 项目设置
我们将使用众多 Maven 原型之一来为我们的示例创建一个示例项目。要创建项目,请在您将用作工作区的目录中执行以下命令:
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">mvn archetype:generate -DgroupId=com.javacodegeeks.example -DartifactId=JCG-SpringDataJPA-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
</font></font>
如果您是第一次运行 maven,则需要几秒钟来完成生成命令,因为 maven 必须下载所有必需的插件和工件才能完成生成任务。
artifactId请注意,现在,您将拥有一个与所选目录同名的新目录。现在,请随意在您最喜欢的 IDE 中打开该项目。
最后,我们没有使用 IDE 来制作这个项目,而是使用了一个简单的 maven 命令。这有助于我们从您可能使用的任何特定 IDE 中进行项目设置和初始化。
3. Maven依赖
首先,我们需要将适当的 Maven 依赖项添加到我们的项目中。我们将以下依赖项添加到我们的pom.xml文件中:
pom.xml
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><父></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
<groupId>org.springframework.boot</groupId></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
<artifactId>spring-boot-starter-parent</artifactId></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
<version>1.5.10.RELEASE</version></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
<relativePath/> <!-- 从存储库中查找父级 --></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
</父></font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
<属性></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
<java.version>1.8</java.version></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
</属性></font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
<依赖项></font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font sty