我们通过为自行车商店构建示例应用程序来学习如何使用JPA。对于应用程序开发人员来说,JavaPersistenceAPIJavaPersistenceAPI(JPA)是一项重要的java特性,需要透彻理解。它为Java开发人员定义了如何将对对象的方法调用转换为访问、持久化和管理存储在NoSQL和关系数据库中的数据的解决方案。本文通过构建自行车借贷服务的教程示例详细研究了JPA。本示例使用SpringBoot框架、MongoDB数据库(不再开源)和Maven包管理构建一个大型应用程序,并构建一个创建、读取、更新和删除(CRUD)层。这里我选择NetBeans11作为我的IDE。本教程仅从开源的角度介绍JavaPersistenceAPI的工作原理,不涉及其作为工具的使用。这一切都是关于学习编写应用程序模式,但它也有助于理解具体的软件实现。相关代码可以从我的GitHub仓库中获取。Java:不仅仅是“bean”Java是一种面向对象的编程语言,自1996年发布第一个版本的JavaDevelopmentKit(JDK)以来,它发生了很大的变化。了解它的各种发展和它的虚拟机是一个历史教训本身。简而言之,与Linux内核非常相似,该语言自发布以来已经向多个方向发展。有一个对社区免费的标准版,一个对企业免费的企业版,以及来自多个供应商的开源替代品。主要版本每六个月发布一次,它们的功能往往差异很大,因此在决定选择哪个版本之前进行一些研究。总而言之,Java有着悠久的历史。本教程重点介绍JDK11,它是Java11的开源实现。因为它是仍然有效的长期支持版本之一。SpringBoot是Pivotal开发的更大的Spring框架的一个模块。Spring是一个非常流行的Java开发框架。支持各种框架和配置,也为WEB应用和安全提供保护。SpringBoot提供了快速构建各类Java项目的基本配置。本教程使用SpringBoot快速编写控制台应用程序并针对数据库编写测试用例。Maven是Apache开发的项目/包管理工具。Maven通过POM.xml文件管理包和它们的依赖关系。如果您使用过NPM,您可能非常熟悉包管理器的功能。此外,Maven还用于构建项目和生成功能报告。Lombok是一个通过注释对象文件自动创建getters/setters的库。像C#这样的语言已经有了这个特性,Lombok只是把它带到了Java语言中。NetBeans是一种流行的开源IDE,专门用于Java开发。它的许多工具已随JavaSE和EE版本更新。我们将使用这组工具为虚构的自行车商店创建一个简单的应用程序。将对Customer和Bike对象的集合实施插入。Brew完美导航到SpringInitializr页面。本站可以生成基于SpringBoot及其依赖的基础项目。选择以下选项:项目:Maven项目语言:JavaSpringBoot:2.1.8(或最稳定的版本)项目元数据:无论您使用什么名称,命名约定都类似于com.stephb。您可以将Artifact名称保留为“Demo”。依赖项:添加:SpringDataMongoDBLombok单击下载,然后使用您的IDE(例如NetBeans)打开这个新项目。模型层概述在项目中,模型模型表示从数据库中检索信息的特定对象。我们关注两个对象:Customer和Bike。首先在src目录下创建一个dto目录;然后,创建两个名为Customer.java和Bike.java的Java类对象文件。其结构如下所示:packagecom.stephb.JavaMongo.dto;importlombok.Getter;importlombok.Setter;importorg.springframework.data.annotation.Id;/****@authorstephon*/@Getter@Setterpublicclass客户{私人@Id字符串id;私人字符串电子邮件地址;私有字符串名字;私有字符串姓氏;私有字符串地址;}Customer.Javapackagecom.stephb.JavaMongo.dto;importlombok.Getter;importlombok.Setter;importorg.springframework.data.annotation.Id;/****@authorstephon*/@Getter@SetterpublicclassBike{私有@Id字符串标识;私有字符串型号;私有字符串颜色;私有字符串描述;@OverridepublicStringtoString(){return"Thisbikemodelis"+this.modelNumber+"isthecolor"+this.color+"andis"+description;}}Bike.java如你所见,对象中使用Lombok注解来为确定正确的属性/特殊属性生创建getters/setters如果你不想为类的所有属性生成getters/setters,你可以专门在属性上定义这些注解。这两个类将成为一个容器,里面有数据,可以用在任何你想展示信息的地方。为了配置数据库,我在这个测试中使用了MongoDocker容器。如果您的系统上已经安装了MongoDB,则不必运行Docker实例。您也可以登录其官网,选择系统信息,按照安装说明安装MongoDB。安装后,您可以使用命令行、图形用户界面(如MongoDBCompass)或用于连接数据源的IDE驱动程序与新的MongoDB服务器进行交互。此时,是时候定义用于获取、转换和保存数据的数据层了。要设置数据库访问属性,导航到程序中的applications.properties文件并添加以下内容:spring.data.mongodb.host=localhostspring.data.mongodb.port=27017spring.data.mongodb.database=BikeStoredefinesdataaccessObject/DataAccessLayer数据访问层(DAL)中的数据访问对象(DAO)定义了与数据库中数据的交互过程。神奇的是,使用spring-boot-starter后,查询数据库的大部分工作都已经完成了。让我们从CustomerDAO开始。在src下新建目录dao新建接口文件,然后新建Java类文件CustomerRepository.java,内容如下:packagecom.stephb.JavaMongo.dao;importcom.stephb.JavaMongo.dto。客户;导入java.util.List;导入org.springframework.data.mongodb.repository.MongoRepository;/****@authorstephon*/publicinterfaceCustomerRepositoryextendsMongoRepository
