使用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 Server?同样,我对所有这些都不熟悉,所以我不知道该怎么做。谢谢您的帮助。

罗斯:

我认为您不必只学习如何使用EclipseLink。EclipseLink是JPA的参考实现。Web上有许多关于JPA的教程,您可以阅读。我已经为构建Web应用程序的初学者写了一系列文章,其中一部分涉及JPA(和EclipseLink)。如果您有兴趣,请看一下,我欢迎就此进行讨论以改善它以及我自己的理解。

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

EclipeLink有多种下载方法。这是一种方法:

下载EclipseLink安装程序

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

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

我自己还没有SQL Server,但是您需要在类路径中包括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>

实体类:

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();
            }
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章