Нужни библиотеки
JPA API
Eclipse Link
Apache Derby
Създаване на модел
- В Eclipse създайте нов Java проект – jpa_example
- Създайте нов пакет с име org.elsys_bg.jpa.example
- В новосъздадения пакет добавете нов клас Student
- В новосъздадения клас добавете полета за за име, клас, номер в клас и адрес
- Добавете getter и setter за всяко поле и се уверете, че има конструктор без аргументи
Добавяне на JPA функционалност
- Създайте нова директория под проекта с име lib
- В носъздадената директория изкопирайте derby.jar, eclipselink.jar, javax.persistence_*.jar
- Добавете lib директорията към Build Path на проекта
- Анотирайте класа Student с @Entity
- Добавете ново поле private Long id
- Анотирайте полето с @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
package org.elsys_bg.jpa.example;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int number;
private String adddress;
private String klass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getAdddress() {
return adddress;
}
public void setAdddress(String adddress) {
this.adddress = adddress;
}
public String getKlass() {
return klass;
}
public void setKlass(String klass) {
this.klass = klass;
}
}
Конфигуриране на EclipseLink
- Създайте нова директория под jpa_example/src с име META-INF
- В новосъздадената директория създайте нов файл с име persistence.xml със следното съдържание
<?xml version="1.0" encoding="UTF-8" ?>
<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_2_0.xsd"
version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="students" transaction-type="RESOURCE_LOCAL">
<class>org.elsys_bg.jpa.example.Student</class>
<properties>
<property name="javax.persistence.jdbc.driver"
value="org.apache.derby.jdbc.EmbeddedDriver" />
<property name="javax.persistence.jdbc.url"
value="jdbc:derby:studentsDb;create=true" />
<property name="javax.persistence.jdbc.user" value="test" />
<property name="javax.persistence.jdbc.password" value="test" />
<property name="eclipselink.ddl-generation" value="create-tables" />
<property name="eclipselink.ddl-generation.output-mode"
value="database" />
</properties>
</persistence-unit>
</persistence>
Пускане на приложението
- Добавете нов клас Application с main метод
package org.elsys_bg.jpa.example;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Application {
public static void main(String[] args) {
EntityManagerFactory factory = Persistence
.createEntityManagerFactory("students");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
Student student = new Student();
student.setAdddress("Sofia");
student.setKlass("12a");
student.setName("Student1");
student.setNumber(1);
em.persist(student);
em.getTransaction().commit();
em.close();
}
}
Използвани анотации
@Entity
@Id
@GeneratedValue
@OneToOne
@OneToMany
@ManyToOne
@ManyToMany