gpt4 book ai didi

java - 使用 EclipseLink

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:31 25 4
gpt4 key购买 nike

我对 Java 和 Eclipse 还是个新手,我正在尝试让我的应用程序连接到数据库。我想我想使用 EclipseLink,但所有有关该问题的文档都假设您已经了解一切。

我不断收到指向本教程的链接:http://www.vogella.de/articles/JavaPersistenceAPI/article.html

但它基本上没有用,因为它不会告诉您如何做任何事情。对于安装部分,它告诉您下载 EclipseLink 并为您提供下载页面的链接,但没有告诉您下载后如何使用它。下载页面也没有。我使用 Eclipse 中的“安装新软件”选项将 EclipseLink 安装到 Eclipse 中,但它给了我 4 个不同的选项,没有一个在任何地方进行解释。它为我提供了 JPA、MOXy、SDO 等选项,但我不知道我需要哪一个。我刚刚安装了它们。网络上的所有内容都假定您已经是 Java 大师,并且从未解释过 Java 开发人员的第二天性,因此对于尝试学习的人来说,这非常令人沮丧。

那么我该如何在我的项目中安装和使用 EclipseLink 以及我需要做什么才能将它连接到 Microsoft SQL 服务器?同样,我对这一切都不熟悉,所以我不知道该怎么做。感谢您的帮助。

最佳答案

我认为您不需要只学习如何使用 EclipseLink。 EclipseLink 是 JPA 的引用实现。您可以阅读有关 JPA 的 Web 上的许多教程。我写了一个series of articles适用于构建 Web 应用程序的初学者,其中一个部分涉及 JPA(和 EclipseLink)。如果你有兴趣看一看,我欢迎讨论它以改进它以及我自己的理解。

编辑:这是对您问题的更直接的回答。希望对你有帮助

EclipeLink 有多种不同的下载方法。这是一种方式:

下载EclipseLink Installer

从下载的 jlib 目录中提取 eclipselink.jar 并将其包含在您的项目类路径中。

下载ejb3-persistence.jar并将其包含在您的项目类路径中。

我自己没有 SQL 服务器,但您需要在类路径中包含 sqljdbc jar。不知道您使用的是什么版本,或者它是否重要,但您可以试试这个 link并下载 1033\sqljdbc_3.0.1301.101_enu.tar.gz 文件。提取它并将 sqljdbc.jar 复制到您的项目类路径中。

这是一个简单的独立示例:

persistence.xml(保存在 src 文件夹中的 META-INF 目录中)

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">

<persistence-unit name="escribs-pu" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<!-- haven't tested with SQL server so hope the below is correct -->
<property name="eclipselink.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="eclipselink.jdbc.url" value="jdbc:sqlserver://localhost;databaseName=MyDB" />
<property name="eclipselink.jdbc.user" value="myusername" />
<property name="eclipselink.jdbc.password" value="mypassword" />
</properties>
</persistence-unit>
</persistence>

实体类:

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="person")
public class Person {
private Long id;
private String name;

@Id
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

简单测试

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

public class SimpleTest {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("escribs-pu");

Person person = new Person();
person.setId(1L);
person.setName("Clark");

EntityManager em = null;
EntityTransaction tx = null;
try {
em = emf.createEntityManager();
tx = em.getTransaction();
tx.begin();
em.persist(person);
tx.commit();

System.out.println("Person id: " + person.getId());
} catch (RuntimeException e) {
tx.rollback();
throw e;
} finally {
if (em != null && em.isOpen()) {
em.close();
}
}
}
}

关于java - 使用 EclipseLink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3046797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com