[Java] Ich habe JDBC installiert und versucht, eine Verbindung mit Servlet + MySQL herzustellen. (Es gibt eine Version mit DAO / Bean)

◆ Inhaltsverzeichnis

◇ Verzeichnisstruktur ◇ [Bild] Ausgabeinhalt & DB-Inhalt

  1. Einführung in den JDBC-Treiber
  2. Erstellen Sie context.xml
  3. Ausführung (mehrere Muster)
  4. Servlet [Ausführung]
  5. [Ausführung] DAO ~ Verwenden Sie Bean ~ nicht
  6. [Ausführen] DAO ~ Bean verwenden ~

◇ Verzeichnisstruktur

:file_folder: book  ┣━ :file_folder: src  ┃  ┣━ :file_folder: sample  ┃  ┃  ┣━ :page_facing_up: All.java  ┃  ┃  ┣━ :page_facing_up: ProductList.java  ┃  ┃  ┗━ :page_facing_up: ProductList2.java  ┃  ┃  ┃  ┣━ :file_folder: dao  ┃  ┃  ┣━ :page_facing_up: DAO.java  ┃  ┃  ┗━ :page_facing_up: ProductDAO.java  ┃  ┃  ┃  ┗━ :file_folder: bean  ┃     ┗━ :page_facing_up: Product.java  ┃  ┗━ :file_folder: WebContent     ┣━ :file_folder: META-INF     ┃  ┗━ :page_facing_up: context.xml     ┃     ┗━ :file_folder: WEB-INF        ┗━ :file_folder: lib           ┗━ :page_facing_up: mysql-connector-java-5.1.48-bin.jar

◇ [Bild] Ausgabeinhalt & DB-Inhalt

・ Bild anzeigen (links) ・ DB-Inhalt (rechts) スクリーンショット 2019-10-28 16.04.19.png

1. Einführung in den JDBC-Treiber

  1. [Download] mysql-connector-java-8.0.18.zip von der offiziellen Website (https://dev.mysql.com/downloads/connector/j/)
  2. Entpacken und extrahieren Sie mysql-connector-java-5.1.48-bin.jar
  3. Geben Sie / WebContent / WEB-INF / lib / mysql-connector-java-5.1.48-bin.jar ein

2. Erstellen Sie context.xml

Erstellen Sie in / WebContent / META-INF / context.xml

context.xml


<?xml version="1.0" encoding="UTF-8" ?>
<Context>
	<Resource name = "jdbc/book"
              auth = "Container"
              type = "javax.sql.DataSource"
              driverClassName = "com.mysql.jdbc.Driver"
              url      = "jdbc:mysql://localhost/book"
              username = "username"
              password = "password">
	</Resource>
</Context>

3. Ausführung (mehrere Muster)

  1. Servlet [Ausführung]
  2. [Ausführung] DAO ~ Verwenden Sie Bean ~ nicht
  3. [Ausführen] DAO ~ Bean verwenden ~

1. Servlet [Ausführung]

Erstellen Sie in / src / sample / All.java

All.java


package sample;

import java.io.*;
import java.sql.*;

import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import javax.sql.*;

/**
 * Servlet implementation class All
 */
@WebServlet("/All")
public class All extends HttpServlet {


	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		PrintWriter out = response.getWriter();

		try {
			//Verbindung herstellen
			InitialContext ic = new InitialContext();
			DataSource ds = (DataSource) ic.lookup("java:/comp/env/jdbc/book");
			Connection con = ds.getConnection();

			//SQL-Anweisungsübertragung
			PreparedStatement st = con.prepareStatement("select * from product");
			//Ausführung & Ergebnisempfang
			ResultSet rs = st.executeQuery();

			//Anzeige von Daten
			while (rs.next()) {
				out.println(
					rs.getInt("id")      + ":" + 
					rs.getString("name") + ":" + 
					rs.getInt("price")
				);
			}

			//Trennung der Datenbank
			st.close();
			con.close();

		} catch (Exception e) {
			//Verbindungs- / SQL-Anweisungsfehler
			e.printStackTrace(out);

		} // try
	}

}

2. [Ausführung] DAO ~ Verwenden Sie Bean ~ nicht

Erstellen Sie DAO (Data Access Object)! !! !! !! (^ ω ^) Erstellen Sie eine Bibliothek mit dem Inhalt des obigen 1. [Execution] Servlets

  1. Erstellen Sie DAO.java (Verbindung herstellen)
  2. Erstellen Sie ProductList.java (DAO-Erfassung & -Verarbeitung & -Anzeige)

1) Erstellen Sie DAO.java (Verbindung herstellen)

DAO.java


package dao;

import java.sql.Connection;

import javax.naming.InitialContext;
import javax.sql.DataSource;

public class DAO {
	static DataSource ds;

	public Connection getConnection() throws Exception {
		
		//Erste Kontextkonstruktion
		InitialContext ic = new InitialContext();
		
		//Informationen zum DB-Verbindungsziel abrufen (Kontext.Inhalt von xml)
		ds = (DataSource) ic.lookup("java:/comp/env/jdbc/book");

		return ds.getConnection();
	}
}

2) Erstellen Sie ProductList.java (DAO-Erfassung und -Verarbeitung und -Anzeige)

ProductList.java


package sample;

import dao.DAO;

import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet("/sample/productList")
public class ProductList extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		PrintWriter out = response.getWriter();

		try {
			//DB-Verbindung
			DAO dao = new DAO();
			Connection con = dao.getConnection();

			//SQL-Erstellung
			PreparedStatement st = con.prepareStatement("SELECT * FROM product");

			//SQL-Ausführung
			ResultSet rs = st.executeQuery();

			//Daten einstellen
			while (rs.next()) {
				out.println(
	                    rs.getInt("id")      + ":" + 
	                    rs.getString("name") + ":" + 
	                    rs.getInt("price")   + "<br>"
	                );
			}

			//Trennen
			st.close();
			con.close();

		} catch (Exception e) {
			e.printStackTrace(out);
		}

	}
}

3. [Ausführen] DAO ~ Bean verwenden ~

  1. Erstellen Sie DAO.java (Verbindung herstellen)
  2. Erstellen Sie Product.java (Bean)
  3. Erstellen Sie ProductDAO.java (DAO-Erfassung und -Verarbeitung)
  4. Erstellen Sie "ProductList2.java" (Get & Display ProductDAO)

1) Erstellen Sie DAO.java (Verbindung herstellen)

Oben 2) [Ausführung] Da es dasselbe ist wie DAO ~ Verwenden Sie Bean ~ nicht !! !! !! !! !! Ausgelassen! !! !! !! !!

2) Erstellen Sie Product.java (Bean)

Product.java


package bean;

public class Product implements java.io.Serializable {
	private int id;
	private String name;
	private int price;

	public int getId() {
		return id;
	}

	public String getName() {
		return name;
	}

	public int getPrice() {
		return price;
	}

	public void setId(int id) {
		this.id = id;
	}

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

	public void setPrice(int price) {
		this.price = price;
	}
}

3) Erstellen Sie ProductDAO.java (DAO-Erfassung und -Verarbeitung)

ProductDAO.java



package dao;

import java.sql.*;
import java.util.*;
import bean.Product;

public class ProductDAO extends DAO {
	public List<Product> listAll() throws Exception {

		List<Product> list = new ArrayList<>();

		//DB-Verbindung
		Connection con = getConnection();

		//SQL-Erstellung
		PreparedStatement st = con.prepareStatement("SELECT * FROM product");

		//SQL-Ausführung
		ResultSet rs = st.executeQuery();

		//Daten einstellen
		while (rs.next()) {
			Product p = new Product();
			p.setId(rs.getInt("id"));
			p.setName(rs.getString("name"));
			p.setPrice(rs.getInt("price"));

			list.add(p);
		}

		//Trennen
		st.close();
		con.close();

		return list;
	}
}

4) ProductList2.java erstellen (ProductDAO abrufen und anzeigen)

ProductList2.java


package sample;

import java.io.*;
import java.sql.*;
import java.util.List;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import javax.sql.*;
import bean.Product;
import dao.ProductDAO;

@WebServlet("/sample/productList2")
public class Search2 extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		PrintWriter out = response.getWriter();

		try {
			ProductDAO dao = new ProductDAO();

			List<Product> list = dao.listAll();

			for (Product p : list) {
				out.println(
						p.getId()    + ":" + 
						p.getName()  + ":" + 
						p.getPrice() + "<br>"
				);
			}

		} catch (Exception e) {
			e.printStackTrace(out);
		}

	}

}

Referenzseite

Recommended Posts

[Java] Ich habe JDBC installiert und versucht, eine Verbindung mit Servlet + MySQL herzustellen. (Es gibt eine Version mit DAO / Bean)
[Java] Ich habe versucht, über den Verbindungspool eine Verbindung mit Servlet (Tomcat) & MySQL & Java herzustellen
Ich habe MySQL 5.7 mit Docker-Compose gestartet und versucht, eine Verbindung herzustellen
Ich habe versucht, mithilfe von JDBC Template mit Spring MVC eine Verbindung zu MySQL herzustellen
Ich habe versucht, den Block mit Java zu brechen (1)
Ich habe versucht, mit Java und Spring eine Funktion / einen Bildschirm für den Administrator einer Einkaufsseite zu erstellen
[Azure] Ich habe versucht, eine kostenlose Java-App zu erstellen ~ Mit FTP verbinden ~ [Anfänger]
Stellen Sie mit Java eine Verbindung zu MySQL 8 her
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Ich habe versucht, eine Java EE-Anwendung mit OpenShift zu modernisieren.
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Ein einfaches CRUD-Beispiel mit Java Servlet / JSP und MySQL
Einfacher LINE BOT mit Java Servlet Teil 2: Ich habe versucht, Bildnachrichten und Vorlagen zu erstellen
[Java] Ich möchte auf jeden Fall MySQL verbinden !!! ~ Informationen zum Abrufen des JDBC-Treibers und des Speicherorts der JAR-Datei ~
Ich habe versucht, mit Java zu interagieren
Stellen Sie mit Eclipse eine Verbindung von Java zu MySQL her
Ich habe versucht, OpenCV mit Java + Tomcat zu verwenden
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
Ich habe einen LSP und habe versucht, eine Umgebung zum Schreiben von Java mit Vim (NeoVim) zu erstellen, aber ich konnte die IDE nicht übertreffen ...
Ich habe versucht, mit der Java Stream-API eine Methode zu erstellen, die mehrere Filter gleichzeitig anwendet. Ist das in Ordnung?
Ich habe ein Programm erstellt, das aus dem mit Java überladenen Prozess nach der Zielklasse sucht
[JDBC ③] Ich habe versucht, mithilfe von Platzhaltern und Argumenten Eingaben über die Hauptmethode vorzunehmen.
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Stellen Sie über eine Java-Anwendung eine Verbindung zu Aurora (MySQL) her
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe versucht, einen Server mit Netty zu implementieren
Ich möchte eine Verbindung herstellen, wenn eine Datenbank mit Spring und MyBatis erstellt wird
Ich habe versucht, ein einfaches Spiel mit Javafx zu machen ① "Lass uns Glücksspiel finden" (unvollendete Version ②)
Ich habe versucht, mit Wercker ein Docker-Image zu erstellen und zu veröffentlichen, mit dem GlassFish 5 gestartet wird
[Java] [SQL Server] Stellen Sie mit JDBC für SQL Server eine Verbindung zum lokalen SQL Server 2017 her
Ich habe versucht, CSV mit Outsystems zu lesen und auszugeben
Ich habe versucht, TCP / IP + BIO mit JAVA zu implementieren
Gibt an, ob SSL bei Verwendung von JDBC mit MySQL aktiviert werden soll.
[Java 11] Ich habe versucht, Java auszuführen, ohne mit Javac zu kompilieren
Ich habe versucht, SQS mit AWS Java SDK zu betreiben
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Ich habe versucht, Log4j2 auf einem Java EE-Server zu verwenden
Ich habe versucht, mit OCR eine PDF-Datei mit Java zu verarbeiten
Ich habe versucht, Sterling Sort mit Java Collector zu implementieren
Ich möchte Bildschirmübergänge mit Kotlin und Java machen!
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
[Java] Stellen Sie eine Verbindung zu MySQL her
[JDBC] Ich habe versucht, von Java aus auf die SQLite3-Datenbank zuzugreifen.
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Stellen Sie mit aktiviertem SSL in JDBC eine Verbindung zu mehreren MySQL-Instanzen her
Ich habe versucht, Java Optional und Guard-Klausel koexistieren zu lassen
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich habe versucht, Dapr in Java zu verwenden, um die Entwicklung von Mikroservices zu erleichtern
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ②
Ich habe einen RESAS-API-Client in Java erstellt
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ①
Ich möchte verschiedene Funktionen mit Kotlin und Java implementieren!
Ein Memo zum Starten der Java-Programmierung mit VS Code (Version 2020-04)
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen