В этой статье будет описано просто добавление записей в таблицу при помощи JPA. Никаких особо пояснений не будет.

1)Для начала создадим простенькую табличку в БД:

DROP TABLE IF EXISTS STUDENTS;
CREATE TABLE STUDENTS(ID INT PRIMARY KEY, name VARCHAR(255), hobby VARCHAR(255));

2)Далее создадим простой maven-проект

3)Кликнуть мышкой на проект: Configure — Convert to JPA project. Нажать «ОК»
4)В POM-файл пропишем:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.example</groupId>
  <artifactId>JPA</artifactId>
  <version>1</version>
  
  <properties>
		<eclipselink.version>2.6.2</eclipselink.version>
		<h2.version>1.4.178</h2.version>
	</properties>
  
  <dependencies>
  	<dependency>
			<groupId>org.eclipse.persistence</groupId>
			<artifactId>eclipselink</artifactId>
			<version>${eclipselink.version}</version>
		</dependency>
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<version>${h2.version}</version>
		</dependency>
	</dependencies>
  
</project>

5)Соберем проект mvn clean install

[INFO] BUILD SUCCESS

6)Создать класс STUDENTS(если есть ошибки, то сделать Project — Clean)

package org.example.entity;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "STUDENTS")
public class STUDENTS implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private int ID;
	
	@Column
	private String name;
	
	@Column
	private String hobby;
		
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getHobby() {
		return hobby;
	}

	public void setHobby(String hobby) {
		this.hobby = hobby;
	}

	public int getID() {
		return ID;
	}

}


7)Заполнить persistence.xml


<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
	xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
	<persistence-unit name="JPA">
		<provider>
org.eclipse.persistence.jpa.PersistenceProvider
 </provider>
		<class>org.example.entity.STUDENTS</class>
		<properties>
			<property name="eclipselink.jdbc.url" value="jdbc:h2:tcp://localhost/~/test" />
			<property name="eclipselink.jdbc.user" value="sa" />
			<property name="eclipselink.jdbc.driver" value="org.h2.Driver" />
			<property name="eclipselink.jdbc.password" value="" />
			<property name="eclipselink.logging.level" value="INFO" />
			<property name="eclipselink.target-database" value="Auto" />
			<property name="eclipselink.ddl-generation" value="create-tables" />
			<property name="eclipselink.ddl-generation.output-mode"
				value="database" />
		</properties>
	</persistence-unit>
</persistence>

8)Последний шаг главный класс:

package org.example.main;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

import org.example.entity.STUDENTS;



public class MainClass {

	public static void main(String[] args) {

		EntityManagerFactory factory = Persistence.createEntityManagerFactory("JPA");
		EntityManager entityManager = factory.createEntityManager();
		EntityTransaction transaction = entityManager.getTransaction();
		transaction.begin();
		
		STUDENTS s = new STUDENTS();
		
		s.setName("Ivanov");
		s.setHobby("chess");
		
		entityManager.persist(s);
		entityManager.flush();
		
		transaction.commit();
		entityManager.close();
		factory.close();
	}

}


В результате в БД добавится одна запись.
Разбираться с JPA буду в следующих статьях.

Реклама