彩票走势图

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

翻译|使用教程|编辑:鲍佳佳|2021-02-23 14:17:19.593|阅读 1062 次

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

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

下载IntelliJ IDEA最新版

创建一个新的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)或⌘N(macOS)来生成它。我们将从列表中选择Constructor。然后点击Select None,这样我们就可以生成一个没有参数的构造函数了。IntelliJ IDEA创建了Employee无参数构造函数。

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

天沟图标

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

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

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


package entity;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;

@Entity
public 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)或按⌘N键(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文件应该是这样的。


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence xmlns="//jakarta.ee/xml/ns/persistence"
             xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="//jakarta.ee/xml/ns/persistence //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!还有多种授权方式供你选择。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP