提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:鲍佳佳|2021-02-23 14:17:19.593|阅读 1062 次
概述:在此博客中,我们将研究如何在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="//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
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
IntelliJ在业界被公认为优秀的Java开发平台之一,在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面表现突出,并支持基于Android平台的程序开发。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢