翻譯|使用教程|編輯:鮑佳佳|2021-02-23 14:17:19.593|閱讀 1163 次
概述:在此博客中,我們將研究如何在IntelliJ IDEA Ultimate中創建一個簡單的Jakarta Persistence應用程序。Jakarta Persistence是Java Persistence API(也稱為JPA)的新名稱。這些API允許您在關系數據庫中存儲,訪問和管理Java對象。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
創建一個新的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="http://jakarta.ee/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://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@fc6vip.cn
文章轉載自: