IntelliJ IDEA 教程:如何创建一个简单的Jakarta Persistence应用程序

在此博客中,我们将研究如何在IntelliJ IDEA Ultimate中创建一个简单的Jakarta Persistence应用程序。Jakarta Persistence是Java Persistence API(也称为JPA)的新名称。这些API允许您在关系数据库中存储,访问和管理Java对象。

创建一个新的Jakarta Persistence项目

首先,我们将在IntelliJ IDEA Ultimate中创建一个新项目,方法是单击“welcome”屏幕中的“New Project按钮。我们将从左侧菜单中选择Java Enterprise,这使我们能够利用IntelliJ IDEA Ultimate中提供的企业框架支持。在本教程中,我将使用最新的长期支持(LTS)Java版本Java11。然后,我将为模板选择“”。我不会为持久性应用程序使用任何应用程序服务器,因此不会配置应用程序服务器字段。然后,我将单击“下一步”

新项目窗口

在下一个窗口中,我们将选择我的应用程序所需的库。我想使用最新的可用API,因此我将从下拉菜单中选择Jakarta EE 9。在实现下,我将选择EclipseLink。然后,我将单击“下一步”

选择框架

在下一个窗口中,我将项目名称设置为JakartaPersistenceApp,并将组更改为公司名称com.jetbrains。然后单击完成。IntelliJ IDEA将创建项目并为我们生成一些文件。

添加数据库依赖关系

首先,我们将在IntelliJ IDEA Ultimate中创建一个新的项目,点击欢迎界面中的新建项目按钮。我们将从左侧菜单中选择Java企业版,这使我们能够利用IntelliJ IDEA Ultimate中提供的企业框架支持。在本教程中,我将使用最新的长期支持(LTS)Java版本,即Java 11。然后,我将为我的模板选择库。我不会为我的持久化应用程序使用任何应用服务器,所以我不会配置应用服务器字段。然后,我将点击 “Next”。

<dependency>    <groupId>org.hsqldb</groupId>    <artifactId>hsqldb</artifactId>    <version>2.5.1</version></dependency>

添加依赖项后,我将通过在Windows / Linux上按Ctrl + Shift + O或在MacOS上I来加载我的Maven更改。我也可以单击pom.xml文件右上角显示的图标。既然我们的依赖关系都已设置好,让我们开始创建持久性应用程序所需的文件。

创建员工实体

我们将转到View- > Tool Windows- > Persistence打开Persistence工具窗口。持久性工具窗口允许我们为持久性应用程序创建各种资源。您将看到IntelliJ IDEA创建了一个配置文件,我们将在其中配置托管持久性类和数据库。此外,还会为我们创建一个默认的持久性单元。persistence.xml

让我们创建一个代表Employee的实体。为此,我们可以右键单击默认的持久性单元,然后单击“New”,然后单击“Entity”

创建新实体

对于创建类,我们将输入Employee。对于Destination Package,我们将创建一个新的包,叫做实体。由于该包目前并不存在,所以它将以红色显示。一旦我们点击确定,IntelliJ IDEA将创建新的实体包和我们的Employee类。我们的Employee类将与生成的ID以及它的setter和getter一起被创建。

根据Jakarta Persistence规范,一个实体必须有一个无参数的构造函数,所以我们将使用Alt+Insert(Windows/Linux)或(macOS)来生成它。我们将从列表中选择Constructor。然后点击Select None,这样我们就可以生成一个没有参数的构造函数了。IntelliJ IDEA创建了Employee无参数构造函数。

现在让我们再给Employee实体添加几个变量。我将为Employee的名字添加一个名为fName的字符串变量(这不是最好的变量名,但我们将在后面的教程中进行修改)。我们还将为雇员的姓添加一个字符串变量,称为lName。

天沟图标

实体类声明上的水槽图标允许你导航到持久化工具窗口。你的实体的持久化字段也有沟槽图标。IntelliJ IDEA会用一个小键图标来区分ID字段。你会注意到ID字段有两个沟槽图标,一个用于字段访问,一个用于属性访问。

让我们继续为我的新字段生成设置器和获取器。我会调出生成菜单(Windows/Linux下为Alt+Insert,macOS下为),选择Getter和Setter。我会按Ctrl键选择这两个变量,然后点击确定。IntelliJ IDEA为这两个变量生成了getter和setter。

这是我的Employee类目前的样子:

package entity;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.Id;@Entitypublic class Employee {    @Id    @GeneratedValue    private Long id;    private String fName;    private String lName;    public Employee() {    }    public void setId(Long id) {        this.id = id;    }    public Long getId() {        return id;    }    public String getfName() {        return fName;    }    public void setfName(String fName) {        this.fName = fName;    }    public String getlName() {        return lName;    }    public void setlName(String lName) {        this.lName = lName;    }}

创建主类
现在我们的Employee实体已经完成了,让我们创建我们的Main类,在这里我们将创建一个Employee对象并将其持久化到数据库中。在Project Window中,我们将选择java文件夹,按Alt+Insert键(Windows/Linux)或按键(macOS)调出New菜单。选择Java类,然后输入我们的类名Main。

在我们的新类中,我们来添加一个main方法。我会键入main并按下Enter键,让IntelliJ IDEA为我完成声明。现在,我将创建一个Employee对象,我们将把它持久化到数据库中。我们将创建一个Employee对象,然后设置它的名字和姓氏。

现在,持久化我的雇员的第一步是创建一个EntityManagerFactory(你会注意到,如果你输入Emf,IntelliJ IDEA会弹出EntityManagerFactory类,我们可以选择)。IntelliJ IDEA也会建议你使用一个变量名。我们将通过调用Persistence.createEntityManagerFactory(“default”)方法来创建EntityManagerFactory,并将default作为我们的持久化单元名称。

接下来,我们将通过调用EntityManagerFactory.createEntityManager()方法来创建EntityManager。一旦我们这样做了,我们现在可以通过调用EntityManager的getTransaction().begin()来开始一个事务。然后,我们可以通过调用 EntityManager 的 persist 方法来持久化我们之前创建的 Employee 对象。现在这一切都完成了,我们可以清理我们的资源了。我们将提交我们的事务并关闭我们的EntityManager和EntityManagerFactory。

最后的Main类应该类似于下面的样子。

import entity.Employee;import jakarta.persistence.EntityManager;import jakarta.persistence.EntityManagerFactory;import jakarta.persistence.Persistence;public class Main {    public static void main(String[] args) {        Employee employee = new Employee();        employee.setfName("Dalia");        employee.setlName("Abo Sheasha");        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("default");        EntityManager entityManager = entityManagerFactory.createEntityManager();        entityManager.getTransaction().begin();        entityManager.persist(employee);        entityManager.getTransaction().commit();        entityManager.close();        entityManagerFactory.close();    }}

至此,我们几乎可以保留数据了。缺少的主要步骤是在数据库中保存我们的数据。您会记得在本教程的前面部分提到过,我们将使用HyperSQL作为数据库。因此,让我们继续设置数据库。

设置HyperSQL数据库

让我们从持久化工具或项目窗口(在 src/main/resources/META-INF/persistence.xml 下)导航到 persistence.xml 配置文件。在persistence.xml文件中,你会注意到我们的Employee实体已经被配置为默认持久化单元中的一个托管持久化类。让我们添加配置HyperSQL数据库所需的Jakarta Persistence属性。

你会看到,只要你开始键入<,IntelliJ IDEA就会为所有进入<persistence-unit>的元素带来建议。我会选择<属性>,然后按Enter键。然后我将开始键入<,并选择<属性>,这将插入带有名称和值属性的<属性>。

对于我的第一个属性,我想指定HyperSQL JDBC驱动程序。我将第一个属性的name属性设置为jakarta.persistence.jdbc.driver,value属性设置为org.hsqldb.jdbcDriver。

然后,我将添加另一个属性元素来配置数据库的URL。我将设置属性名属性为jakarta.persistence.jdbc.url。对于这个值,我希望我的程序在运行时为我创建一个嵌入式的HyperSQL数据库。所以我将指定我的URL在我的项目目标目录下创建一个嵌入式数据库,并调用它为myDB。我还将把shutdown属性设置为true,这样数据库将随着最后一次连接而关闭。我可以通过指定jdbc:sqldb:file:target/myDB;shutdown=true的值来实现。

接下来,我将添加两个属性元素来配置数据库用户和密码。对于用户,我将设置属性名属性为jakarta.persistence.jdbc.user,值属性为user。对于密码,我将设置属性名属性为jakarta.persistence.jdbc.password,值属性为password。

最后,我将添加另一个属性,导致我的实体的表在数据库中为我生成。我将设置属性名属性为jakarta.persistence.schema-generation.database.action,值属性为create。这个属性的结果是在数据库中为我创建Employee表。另一个选择是将这个属性设置为drop-and-create(当我在创建一个实体的定义过程中,还没有最终确定我的模式时,我喜欢设置这个值)。

最终的persistence.xml文件应该是这样的。

<ml version="1.0" encoding="UTF-8" standalone="yes"gt;<persistence              xmlns_xsi="http://www.w3.org/2001/XMLSchema-instance"             xsi_schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd"             version="3.0">    <persistence-unit name="default">        <class>entity.Employee</class>        <properties>            <property name="jakarta.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>            <property name="jakarta.persistence.jdbc.url" value="jdbc:hsqldb:file:target/myDB;shutdown=true"/>            <property name="jakarta.persistence.jdbc.user" value="user"/>            <property name="jakarta.persistence.jdbc.password" value="password"/>            <property name="jakarta.persistence.schema-generation.database.action" value="create"/>        </properties>    </persistence-unit></persistence>

下一章节将讲解如何运行Jakarta Persistence应用程序

好了这就是今天的内容了,如果今天的文章未解决你的需求,可点击获取更多免费教程。不要忘了在评论与我们分享您的想法和建议,作为IntelliJ IDEA正版合作商!现IntelliJ正版授权在线订购最高立减3000元!低至1333!还有多种授权方式供你选择。

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月19日
下一篇 2021年1月19日

相关推荐

发表回复

登录后才能评论