Использование EclipseLink - PullRequest
13 голосов
/ 15 июня 2010

Я все еще новичок в Java и Eclipse и пытаюсь подключить свое приложение к базе данных.Я думаю, что хочу использовать EclipseLink, но вся документация по данному вопросу предполагает, что вы уже знаете все, что нужно знать обо всем.

Я продолжаю получать ссылки на этот учебник: http://www.vogella.de/articles/JavaPersistenceAPI/article.html

Но в принципе это бесполезно, потому что не говорит, КАК что-либо делать.В разделе «Установка» вам предлагается загрузить EclipseLink и дать ссылку на страницу загрузки, но не сказано, что с ним делать после загрузки.Страница загрузки тоже нет.Я использовал опцию «Установить новое программное обеспечение» в Eclipse, чтобы установить EclipseLink в Eclipse, но он дал мне 4 различных варианта, ни один из которых нигде не объясняется.Это дало мне варианты JPA, MOXy, SDO и т. Д., Но я не знаю, какой мне нужен.Я просто установил их все.Все в сети предполагает, что вы уже являетесь гуру Java, а вещи, которые являются второй натурой для разработчиков Java, никогда не объясняются, поэтому это очень расстраивает для того, кто пытается учиться.

Так как мне установить и использовать EclipseLink в моемпроект и что мне нужно сделать, чтобы подключить его к серверу Microsoft SQL?Опять же, я новичок во всем этом, поэтому я понятия не имею, что делать.Спасибо за помощь.

Ответы [ 3 ]

21 голосов
/ 15 июня 2010

Не думаю, что вам нужно просто научиться использовать EclipseLink.EclipseLink является эталонной реализацией для JPA.В Интернете есть несколько учебников, которые вы можете прочитать о JPA.Я написал серию статей для начинающих по созданию веб-приложений, и один из разделов посвящен JPA (и EclipseLink).Если вам интересно, посмотрите, и я приветствую обсуждение этого, чтобы улучшить его, а также мое собственное понимание.

РЕДАКТИРОВАТЬ: Вот более прямой ответ на ваш вопрос.Я надеюсь, что это поможет

Существует несколько различных подходов к загрузке для EclipeLink.Это один из способов:

Загрузить Установщик EclipseLink

Извлечь eclipselink.jar из каталога jlib для загрузки и включить его в classpath своих проектов.

Скачайте ejb3-persistence.jar и включите его в classpath ваших проектов.

У меня нет собственного SQL-сервера, но вам нужно включить jar-файл sqljdbc в ваш classpath.Не знаю, какую версию вы используете, или если это вообще имеет значение, но вы можете попробовать эту ссылку и загрузить файл 1033 \ sqljdbc_3.0.1301.101_enu.tar.gz.Извлеките его и скопируйте sqljdbc.jar в classpath своих проектов.

Вот простой автономный пример:

persistence.xml (сохраненный в каталоге META-INF в папке src) *

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

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();
            }
        }
    }
}
6 голосов
/ 02 февраля 2014

"Так как мне установить и использовать EclipseLink в моем проекте

Поскольку ни один из предыдущих ответов действительно не отвечает на вопрос" Как добавить имп. Jpa.библиотеки для затмения ", вот ответ (мне самому понадобилось час, чтобы разобраться!):

  • скачать реализацию JPA, например eclipselink-2.5.1.v20130918-f2b9fc5.zip и распакуйте библиотеки реализации. Например: eclipselink.jar jpa / *. jar в каталог

  • В eclipse откройте окно -> настройки. В окне настроек откройте путь сборки -> пользовательбиблиотеки

  • В пользовательских библиотеках нажмите new, введите "name jpa" => ok

  • нажмите jpa и нажмите "добавить внешние фляги"... и выберите все извлеченные библиотеки impl

После этого вы можете завершить урок vogella.

Администраторам: Возможно, вы захотите пометить предыдущие комментарии как недействительные / оффтоп,Особенно вы не помещаете баночки в путь проекта, так как собираетесь создать проект NEW .Впрочем, вопрос тоже слишком широкий.

0 голосов
/ 07 июля 2010

В дополнение к эталонной реализации JPA, EclipseLink также предлагает:

EclipseLink MOXy

EclipseLink - этокомпонент для отображения объектов Java (включая объекты JPA) в / из XML.Он соответствует спецификациям JAXB 2.X (JSR-222) с полезными расширениями, такими как: отображение на основе XPath, внешние метаданные.

EclipseLink SDO

SDO означает сервисные объекты данных (JSR-235, EclipseLink - эталонная реализация).Данные представлены в виде объекта DataObject с общими методами get / set (например, set («имя», «Джейн»)).Метаданные обычно предоставляются в виде схемы XML, и есть несколько помощников для действий с данными, включая преобразование в / из XML.

EclipseLink DBWS

Используется для создания веб-службы как средства доступа к вашим реляционным данным.

...