2010-06-15 14 views
11

Wciąż jestem nowicjuszem w Javie i Eclipse i staram się, aby moja aplikacja łączyła się z bazą danych. Myślę, że chcę użyć EclipseLink, ale cała dokumentacja w tej sprawie zakłada, że ​​już wiesz wszystko, co trzeba wiedzieć o wszystkim.Korzystanie z EclipseLink

Wciąż coraz związany z powrotem do tego poradnika: http://www.vogella.de/articles/JavaPersistenceAPI/article.html

Ale to w zasadzie bezużyteczne, ponieważ nie powiedzieć, jak zrobić cokolwiek. W sekcji Instalacja mówi, aby pobrać EclipseLink i podaje link do strony pobierania, ale nie informuje, co z nią zrobić po pobraniu. Strona pobierania również nie. Użyłem opcji "Zainstaluj nowe oprogramowanie" w Eclipse, aby zainstalować EclipseLink w Eclipse, ale dało mi to 4 różne opcje, z których żadna nie została wyjaśniona nigdzie. Dał mi opcje JPA, MOXy, SDO, itp., Ale nie wiem, którego potrzebuję. Właśnie je zainstalowałem. Wszystko w Internecie zakłada, że ​​jesteś już guru Java i rzeczy, które są drugą naturą dla programistów Java, nigdy nie są wyjaśniane, więc jest to bardzo frustrujące dla kogoś, kto próbuje się uczyć.

Jak zainstalować i używać EclipseLink w moim projekcie i co muszę zrobić, aby połączyć go z serwerem Microsoft SQL? Ponownie, jestem nowy w tym wszystkim, więc nie mam pojęcia, co robić. Dzięki za pomoc.

Odpowiedz

19

Nie sądzę, że musisz po prostu nauczyć się korzystać z EclipseLink. EclipseLink jest implementacją referencyjną dla JPA. Istnieje wiele samouczków w Internecie, które możesz przeczytać na temat WZP. Napisałem series of articles dla początkujących do budowania aplikacji internetowych, a jedna z sekcji dotyczy JPA (i EclipseLink). Jeśli jesteś zainteresowany, przyjrzyj się i przyjmuję z radością dyskusję na ten temat, aby ją poprawić, jak również moje własne zrozumienie.

EDYCJA: Oto bardziej bezpośrednia odpowiedź na twoje pytanie. Mam nadzieję, że pomaga

Istnieje wiele różnych metod pobierania dla EclipeLink. Jest to jeden ze sposobów:

Pobierz EclipseLink Installer

Rozpakuj eclipselink.jar z katalogu pobrania jlib i umieścić go w ścieżce klas projektów.

Pobierz ejb3-persistence.jar i umieść go w swojej ścieżce klas projektów.

Nie mam serwera SQL samodzielnie, ale trzeba by dołączyć słoik sqljdbc do ścieżki klasy. Nie wiesz, której wersji używasz lub czy to ma znaczenie, ale możesz wypróbować to link i pobrać plik 1033 \ sqljdbc_3.0.1301.101_enu.tar.gz. Wyodrębnij go i skopiuj plik sqljdbc.jar do ścieżki klasy projektów.

Oto prosty przykład samodzielna:

wytrwałość.xml (zapisany w katalogu META-INF w katalogu 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> 

Podmiot klasa:

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

Sprawdziłem podany link i był tylko jeden artykuł oznaczony eclipselink, który nie zawierał żadnych informacji na temat mojego pytania.Nie wyjaśnia, w jaki sposób zainstalować/skonfigurować EclipseLink lub jak z niego korzystać. Ten artykuł był skierowany do osób, które już korzystają z Hibernate na Glassfish. –

+0

Dzięki za poświęcenie czasu, aby rzucić okiem. Łącze, które wysłałem, zawiera informacje o konwersji istniejącej aplikacji, która korzysta z implementacji odniesienia Hibernate do implementacji referencyjnej EclipseLink. Zawiera link do działającej aplikacji, którą można pobrać, a także linki (w tym stronę główną EclipseLink) do stron, które pokazują, jak ją skonfigurować. Ma również link, który przekierowuje cię z powrotem na początek samouczka, gdzie powinieneś zacząć, jeśli nie jesteś zaznajomiony z technologią. Nie ma szybkiej poprawki do tego, co chcesz zrobić. Wypróbuj Googling samouczków JPA EclipseLink, aby uzyskać więcej informacji. – Ross

+0

Oto link, który jest prawdopodobnie bardziej tym, czego szukasz: http://www.eclipse.org/eclipselink/jpa.php – Ross

0

W addtion do bycia implementacja referencyjna JPA, EclipseLink także oferuje:

EclipseLink MOXy

EclipseLink jest komponentem do odwzorowywania obiektów Java (w tym jednostek JPA) na/z XML. Jest zgodny ze specyfikacją JAXB 2.X (JSR-222) z przydatnymi rozszerzeniami, takimi jak: mapowanie oparte na XPath, zewnętrzne metadane.

EclipseLink SDO

SDO oznacza Service Data Objects (JSR-235, EclipseLink jest implementacja referencyjna). Dane są reprezentowane jako obiekt DataObject z generycznymi metodami get/set (takimi jak set ("first-name", "Jane")). Metadane są zwykle dostarczane w postaci schematu XML, a istnieje kilka pomocników do działania na danych, w tym konwersji do/z XML.

EclipseLink DBWS

służy do tworzenia usługi sieci Web jako sposób uzyskiwania dostępu do danych relacyjnych.

5

„Więc jak mam zainstalować i używać EclipseLink w moim projekcie

Ponieważ żaden z poprzednich odpowiedzi naprawdę odpowiedzieć na pytanie” Jak mogę dodać WZP impl. bibliotek zaćmienie”, oto odpowiedź (zajęło mi godzinę, aby zrozumieć to sam!):

  • pobrać implementacji JPA, na przykład eclipselink-2.5.1.v20130918-f2b9fc5.zip i wyodrębnić realizację .. libs na przykład: eclipselink.jar JPA/* jar do katalogu

  • w Eclipse otwarte okna -> preferencje W preferencjach otwarte okno ścieżka build -> biblioteki użytkownika

  • w użytkownik biblioteki kliknij na nowe. , wpisz "name jpa" => ok

  • kliknięcie WZP i kliknij „dodaj słoików zewnętrznych ... i wybierz wszystkie wyodrębnione IMPL bibliotek

Po tym można zakończyć samouczek vogella użytkownika.

Do administratorów: Możesz chcieć oznaczać poprzednie komentarze jako nieprawidłowe/nietypowe. Szczególnie nie umieszczaj słoików na ścieżce projektu, ponieważ masz zamiar utworzyć projekt NOWY. Pytanie jest jednak zbyt szerokie.

+0

(fwiw, oflagowanie nie jest uprawnieniem tylko dla administratora, jest przyznawane każdemu, kto ma reputację 15+, a kiedy już tam dotrzesz, możesz sam się zgłosić). –