使用EclipseLink

Ros*_*les 14 java jpa eclipselink

我还是Java和Eclipse的新手,我正在尝试将我的应用程序连接到数据库.我想我想使用EclipseLink,但是关于这个问题的所有文档都假设你已经知道了所有关于一切的知识.

我不断回到本教程:http://www.vogella.de/articles/JavaPersistenceAPI/article.html

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

那么如何在我的项目中安装和使用EclipseLink以及将它连接到Microsoft SQL服务器需要做什么?同样,我是所有这一切的新手,所以我不知道该怎么做.谢谢您的帮助.

Ros*_*oss 21

我认为你不需要学习如何使用EclipseLink.EclipseLink是JPA的参考实现.网上有很多关于JPA的教程.我为初学者编写了一系列用于构建Web应用程序的文章,其中一个部分涉及JPA(和EclipseLink).如果您有兴趣看看,我欢迎讨论,以改善它以及我自己的理解.

编辑:这是一个更直接的答案你的问题.我希望它有所帮助

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

下载EclipseLink安装程序

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

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

我自己没有SQL服务器,但您需要在类路径中包含sqljdbc jar.不知道你正在使用什么版本或者它是否重要,但你可以尝试这个链接并下载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>
Run Code Online (Sandbox Code Playgroud)

实体类:

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;
    }
}   
Run Code Online (Sandbox Code Playgroud)

SimpleTest的

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();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 6

"那么如何在我的项目中安装和使用EclipseLink

由于之前的答案都没有真正回答"我如何添加jpa impl.库到eclipse"的问题,这里的答案就是答案(花了我一个小时的时间来弄明白自己!):

  • 下载JPA实现,例如eclipselink-2.5.1.v20130918-f2b9fc5.zip并提取实现库.例如:eclipselink.jar jpa/*.jar到一个目录

  • 在eclipse中打开窗口 - >首选项.在首选项窗口中打开构建路径 - >用户库

  • 在用户库中单击new,键入"name jpa"=> ok

  • 单击jpa并单击"添加外部jar ..."并选择所有提取的impl库

之后,您可以完成vogella的教程.

对于管理员:您可能希望将之前的注释标记为无效/ offtopic.特别是当你要创建一个项目时,你不会将jar放到项目路径中.但是,问题也太宽泛了.