Я все еще плохо знаком с Java и Eclipse, и я пытаюсь заставить свое приложение соединяться с базой данных. Я думаю, что хочу использовать EclipseLink, но вся документация относительно вопроса предполагает, что Вы уже знаете, что все там должно знать обо всем.
Я продолжаю связываться назад с этим учебным руководством: http://www.vogella.de/articles/JavaPersistenceAPI/article.html
Но это в основном бесполезно, потому что это не говорит Вам, КАК сделать что-либо. Для раздела Installation это говорит Вам загружать EclipseLink и дает Вам ссылку на страницу загрузки, но не говорит Вам, что сделать с ним после загрузки. Страница загрузки не делает также. Я использовал опцию "Install new software" в Eclipse для установки EclipseLink в Eclipse, но это дало мне как 4 различных вариантов, ни одни из которых не объяснены нигде. Это дало мне опции JPA, MOXy, SDO, и т.д., но я не знаю, в каком я нуждаюсь. Я просто установил их всех. Все в сети предполагает, что Вы уже - гуру Java и вещи, которые являются второй натурой к Java devs, никогда не объясняются, таким образом, это очень печально для кого-то пытающегося учиться.
Таким образом, как я устанавливаю и ИСПОЛЬЗУЮ EclipseLink в своем проекте и что я должен сделать для соединения его с Microsoft SQL server? Снова, я плохо знаком со всем этим так, у меня нет подсказки, что сделать. Спасибо за справку.
Я не думаю, что вам нужно просто научиться используйте EclipseLink. EclipseLink - это эталонная реализация для JPA. В Интернете есть ряд руководств, касающихся JPA, о которых вы можете прочитать. Я написал серию статей для новичков в создании веб-приложений, и один из разделов посвящен JPA (и EclipseLink). Если вам интересно, взгляните, и я приветствую обсуждение этого, чтобы улучшить его, а также мое собственное понимание.
РЕДАКТИРОВАТЬ: Вот более прямой ответ на ваш вопрос. Я надеюсь, что это поможет
Существует несколько различных подходов к загрузке EclipeLink. Это один из способов:
Загрузить Установщик EclipseLink
Извлеките eclipselink.jar из каталога загрузки jlib и включите его в путь к классам вашего проекта.
Загрузите ejb3-persistence.jar и включите его в путь к классам вашего проекта.
У меня самого SQL-сервера нет, но вам нужно включить jar-файл sqljdbc в свой путь к классам. Не знаю, какую версию вы используете и имеет ли это значение, но вы можете попробовать эту ссылку и загрузить файл 1033 \ sqljdbc_3.0.1301.101_enu.tar.gz. Извлеките его и скопируйте sqljdbc.jar в путь к классам вашего проекта.
Вот простой автономный пример:
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();
}
}
}
}
Помимо эталонной реализации JPA, EclipseLink также предлагает:
EclipseLink - это компонент для сопоставления объектов Java (включая объекты JPA) в / из XML. Он соответствует спецификациям JAXB 2.X (JSR-222) с полезными расширениями, такими как отображение на основе XPath, внешние метаданные.
SDO означает объекты служебных данных (JSR-235, EclipseLink - эталонная реализация). Данные представлены как DataObject с универсальными методами получения / установки (такими как set ("first-name", "Jane")). Метаданные обычно предоставляются в виде схемы XML, и есть несколько помощников для работы с данными, включая преобразование в / из XML.
Используется для создания веб-службы как средства доступа к вашим реляционным данным.