JPA (Java Persistence API) in Eclipse

Einführung

Lassen Sie uns mit Eclipse ein JPA-Beispielprogramm erstellen. Ändern Sie das MVC-Programm und verwenden Sie JPA, um die Daten aus der Postgre SQL-Datenbank abzurufen. Erstellen Sie im Voraus eine Emplyee-Tabelle. (Siehe: Postgre SQL installieren)

Entwicklungsumgebung

Windows 10 Pro 1709(16299.192) Eclipse pleiades-4.7.3 java 1.8.0_162 PostgreSQL 10.4 Released!

Verfahren

    1. Laden Sie den PostgreSQL JDBC-Treiber herunter
  1. Kopieren Sie das Projekt nach WEB-INF \ lib

    1. Erstellen Sie eine Verbindung zu Postgres SQL
  2. In JPA-Projekt konvertieren

  3. Änderungen des Quellcodes

  4. Funktionsprüfung

1. 1. Laden Sie den PostgreSQL JDBC-Treiber herunter

URL

https://jdbc.postgresql.org/download.html

1. Klicken Sie auf "PostgreSQL JDBC 4.2-Treiber, 42.2.2".

image.png

2. Kopieren Sie das Projekt nach WEB-INF \ lib

image.png

3. 3. Erstellen Sie eine Verbindung zu Postgres SQL

1. Wählen Sie "Fenster" -> "Ansicht anzeigen" -> "Andere"

image.png

2. Wählen Sie "Datenverwaltung" "Datenquellen-Explorer" und klicken Sie auf "Öffnen".

image.png

3. Klicken Sie im rechten Menü unter "Datenquellenverbindung" auf "Neu".

image.png

4. Wählen Sie Postgres SQL aus und klicken Sie auf Weiter

image.png

5. Geben Sie "Datenbank", "URL", "Benutzername" und "Passwort" ein und klicken Sie auf "Verbindung testen".

6. Bestätigen Sie "Ping erfolgreich abgeschlossen" und klicken Sie auf die Schaltfläche "OK".

7. Klicken Sie auf die Schaltfläche "Fertig stellen"

image.png

8. Sie können die in [Postgre SQL installieren] erstellte Tabelle sehen (https://qiita.com/0ashina0/items/6574a9e417aff2d86177).

image.png

4. In JPA-Projekt konvertieren

1. Wählen Sie im Projekt Rechtsmenü-> Konfiguration-> In JPA-Projekt konvertieren

image.png

2. Klicken Sie auf "Weiter".

image.png

3. Wählen Sie "EclipseLink 2.5.2" und klicken Sie auf "Weiter".

image.png

4. Aktivieren Sie "Akzeptieren Sie die Bedingungen dieser Lizenz" und klicken Sie auf "Fertig stellen".

image.png

5. Wählen Sie die Verbindung "New PostgreSQL" aus, aktivieren Sie "Build Path", "Standardkatalog von Verbindung überschreiben", "Standardschema von Verbindung überschreiben" und klicken Sie auf "Fertig stellen".

image.png

6. Wählen Sie Rechtsmenü-> JPA-Tools-> Entität aus Tabelle im Projekt generieren

image.png

7. Überprüfen Sie die Tabelle "Mitarbeiter" und klicken Sie auf "Fertig stellen".

image.png

5. Änderungen des Quellcodes

1. Fügen Sie @NamedQuery von findById zur Mitarbeiterentität hinzu

Vorher ändern

@Entity
@NamedQuery(name="Employee.findAll", query="SELECT e FROM Employee e")
public class Employee implements Serializable {
Nach der veränderung

@Entity
@NamedQueries({
	@NamedQuery(name="Employee.findAll", query="SELECT e FROM Employee e"),
	@NamedQuery(name = "Employee.findById", query = "SELECT e from Employee e where e.id = :id")
})
public class Employee implements Serializable {

2. Geändert, um EmployeeServlet von DB zu erhalten

Nach der veränderung

package emp;

import java.io.IOException;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Employee;


/**
 * Servlet implementation class EmployeeServlet
 */
@WebServlet(name = "EmpList", urlPatterns = { "/EmpList" })
public class EmployeeServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public EmployeeServlet() {
        super();
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		EntityManagerFactory emf = Persistence.createEntityManagerFactory("SampleMVC2");
		EntityManager entityManager = emf.createEntityManager();

        List<Employee> employeeList = entityManager
                .createNamedQuery("Employee.findAll", Employee.class)
                .getResultList();

        entityManager.close();
        emf.close();


	    //Modelldaten an View übergeben
	    request.setAttribute("employeeList", employeeList);

	    //Ansicht anzeigen
	    this.getServletContext()
	        .getRequestDispatcher("/employeeList.jsp")
	        .forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		EntityManagerFactory emf = Persistence.createEntityManagerFactory("SampleMVC2");
		EntityManager entityManager = emf.createEntityManager();

		List<Employee> employeeList;

		String id = request.getParameter("id");

		if (id.isEmpty()) {
	        employeeList = entityManager
	                .createNamedQuery("Employee.findAll", Employee.class)
	                .getResultList();
		}
		else {
	        employeeList = entityManager
	                .createNamedQuery("Employee.findById", Employee.class)
	                .setParameter("id", id)
	                .getResultList();
		}

        entityManager.close();
        emf.close();

        //Modelldaten an View übergeben
		request.setAttribute("employeeList", employeeList);


		//Ansicht anzeigen
	    this.getServletContext()
	        .getRequestDispatcher("/employeeList.jsp")
	        .forward(request, response);

	}

}

3. Rechtes Menü auf Employee Bean-> Wählen Sie "Löschen"

image.png

4. Wählen Sie "OK"

image.png

5. Ändern Sie "persistence.xml"

Vorher ändern

<?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="SampleMVC">
		<class>model.Employee</class>
	</persistence-unit>
</persistence>
Nach Änderung (DB-Verbindungsinformationen hinzugefügt)

<?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="SampleMVC2">
		<class>model.Employee</class>
		<properties>
			<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" /> <!-- DB Driver -->
			<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost/postgres" /> <!-- BD Mane -->
			<property name="javax.persistence.jdbc.user" value="postgres" /> <!-- DB User -->
			<property name="javax.persistence.jdbc.password" value="dev" /> <!-- DB Password -->
		</properties>
	</persistence-unit>
</persistence>

6. Funktionsprüfung

[Siehe Funktionsprüfung von "MVC with Eclipse".](Https://qiita.com/0ashina0/items/7c378823905949b301af#4-%E5%8B%95%E4%BD%9C%E7%A2%BA%E8% AA% 8D)

abschließend

Recommended Posts

JPA (Java Persistence API) in Eclipse
[Java] API-Erstellung mit Jerjey (Jax-rs) mit Eclipse
Nullsicheres Programm in Java (Eclipse)
Erste Java-Entwicklung in Eclipse
Versuchen Sie, Selenuim 3.141.59 mit Eclipse (Java) auszuführen.
Treffen Sie Zaims API (OAuth 1.0) in Java
Analysieren der COTOHA-API-Syntaxanalyse in Java
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Implementieren Sie API Gateway Lambda Authorizer in Java Lambda
Studieren Sie Java 8 (Datums-API im Paket java.time)
Versuchen Sie es mit der Stream-API in Java
Rufen Sie die Windows-Benachrichtigungs-API in Java auf
Versuchen Sie es mit der JSON-Format-API in Java
[Java] Setzen Sie AdoptOpen JDK in STS (Eclipse)
Spielen Sie die Framework 2.6 (Java) -Umgebungskonstruktion mit Eclipse
Partisierung in Java
Janken in Java
Java Stream API
MVC in Eclipse.
Umfangsrate in Java
FizzBuzz in Java
ChatWork4j für die Verwendung der ChatWork-API in Java
Techniken zum Lesen von Java-Quellcode in Eclipse
Versuchen Sie, die Cloud Vision-API von GCP in Java zu verwenden
Versuchen Sie es mit der Syntaxanalyse der COTOHA-API in Java
Lesen Sie JSON in Java
Interpreter-Implementierung durch Java
Machen Sie einen Blackjack mit Java
Versuchte Mastodons Toot- und Streaming-API in Java
Janken App in Java
Einschränkungsprogrammierung in Java
Setzen Sie Java8 in Centos7
Java (Eclipse) Installationsverfahren
Eclipse ~ Java-Projekterstellung ~
NVL-artiger Typ in Java
Verbinden Sie Arrays in Java
"Hallo Welt" in Java
Packen Sie die API-Antwort (Java)
Aufrufbare Schnittstelle in Java
Rufen Sie die Amazon Product Advertising API 5.0 (PA-API v5) in Java auf
[Java] Stream API / Map
Azure funktioniert in Java
Fehlerbehebung bei der Docker-Client Java API
Einfache HTML-Spezialchars in Java
Debuggen mit Eclipse
Boyer-Moore-Implementierung in Java
Hallo Welt in Java
WebApi-Memorandum mit Java
Typbestimmung in Java
Befehle in Java ausführen (Ping)
Verschiedene Threads in Java
Implementierung der Heap-Sortierung (in Java)
ASCII-Kunst in Java
Listen in Java vergleichen
POST JSON in Java
Fehler in Java ausdrücken
So verwalten Sie Java EE-Projekte in Eclipse
Erstellen Sie JSON in Java
Datumsmanipulation in Java 8