[Java] J'ai installé JDBC et essayé de me connecter avec servlet + MySQL. (Il existe une version utilisant DAO / Bean)

◆ Table des matières

◇ Structure du répertoire ◇ [Image] Contenu de la sortie et contenu de la base de données

  1. Présentation du pilote JDBC
  2. Créez context.xml
  3. Exécution (plusieurs modèles)
  4. Servlet [Exécution]
  5. [Exécution] DAO ~ Ne pas utiliser Bean ~
  6. [Exécuter] DAO ~ Utiliser Bean ~

◇ Structure du répertoire

: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

◇ [Image] Contenu de la sortie et contenu de la base de données

・ Afficher l'image (à gauche) ・ Contenu de la base de données (à droite) スクリーンショット 2019-10-28 16.04.19.png

1. Présentation du pilote JDBC

  1. [Télécharger] mysql-connector-java-8.0.18.zip sur le site officiel (https://dev.mysql.com/downloads/connector/j/)
  2. Décompressez et extrayez mysql-connector-java-5.1.48-bin.jar
  3. Mettez dans / WebContent / WEB-INF / lib / mysql-connector-java-5.1.48-bin.jar

2. Créez context.xml

Créer dans / 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. Exécution (plusieurs modèles)

  1. Servlet [Exécution]
  2. [Exécution] DAO ~ Ne pas utiliser Bean ~
  3. [Exécuter] DAO ~ Utiliser Bean ~

1. Servlet [Exécution]

Créer dans / 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 {
			//Obtenir une connexion
			InitialContext ic = new InitialContext();
			DataSource ds = (DataSource) ic.lookup("java:/comp/env/jdbc/book");
			Connection con = ds.getConnection();

			//Transmission d'instruction SQL
			PreparedStatement st = con.prepareStatement("select * from product");
			//Exécution et réception des résultats
			ResultSet rs = st.executeQuery();

			//Affichage des données
			while (rs.next()) {
				out.println(
					rs.getInt("id")      + ":" + 
					rs.getString("name") + ":" + 
					rs.getInt("price")
				);
			}

			//Déconnexion de la base de données
			st.close();
			con.close();

		} catch (Exception e) {
			//Erreur de connexion / instruction SQL
			e.printStackTrace(out);

		} // try
	}

}

2. [Exécution] DAO ~ Ne pas utiliser Bean ~

Créez DAO (objet d'accès aux données)! !! !! !! (^ ω ^) Créez une bibliothèque du contenu du `` 1. [Execution] servlet '' ci-dessus

  1. Créez `` DAO.java '' (obtenez la connexion)
  2. Créez `` ProductList.java '' (acquisition et traitement DAO et affichage)

1) Créez DAO.java (obtenez la connexion)

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 {
		
		//Construction du contexte initial
		InitialContext ic = new InitialContext();
		
		//Obtenir les informations de destination de la connexion à la base de données (contexte.Contenu de xml)
		ds = (DataSource) ic.lookup("java:/comp/env/jdbc/book");

		return ds.getConnection();
	}
}

2) Créer ProductList.java (acquisition et traitement DAO et affichage)

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 {
			//Connexion DB
			DAO dao = new DAO();
			Connection con = dao.getConnection();

			//Création SQL
			PreparedStatement st = con.prepareStatement("SELECT * FROM product");

			//Exécution SQL
			ResultSet rs = st.executeQuery();

			//Définir les données
			while (rs.next()) {
				out.println(
	                    rs.getInt("id")      + ":" + 
	                    rs.getString("name") + ":" + 
	                    rs.getInt("price")   + "<br>"
	                );
			}

			//Déconnecter
			st.close();
			con.close();

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

	}
}

3. [Exécuter] DAO ~ Utiliser Bean ~

  1. Créez `` DAO.java '' (obtenez la connexion)
  2. Créez `` Product.java '' (Bean)
  3. Créer `` ProductDAO.java '' (acquisition et traitement DAO)
  4. Créez `` ProductList2.java '' (Obtenir et afficher ProductDAO)

1) Créez DAO.java (obtenez la connexion)

Ci-dessus, 2) [Execution] Parce que c'est la même chose que DAO ~ Ne pas utiliser Bean ~ !! !! !! !! !! Omis! !! !! !! !!

2) Créez 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) Créer ProductDAO.java (acquisition et traitement DAO)

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<>();

		//Connexion DB
		Connection con = getConnection();

		//Création SQL
		PreparedStatement st = con.prepareStatement("SELECT * FROM product");

		//Exécution SQL
		ResultSet rs = st.executeQuery();

		//Définir les données
		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);
		}

		//Déconnecter
		st.close();
		con.close();

		return list;
	}
}

4) Créer ProductList2.java (Obtenir et afficher ProductDAO)

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);
		}

	}

}

Site de référence

Recommended Posts

[Java] J'ai installé JDBC et essayé de me connecter avec servlet + MySQL. (Il existe une version utilisant DAO / Bean)
[Java] J'ai essayé de me connecter en utilisant le pool de connexion avec Servlet (tomcat) & MySQL & Java
J'ai démarré MySQL 5.7 avec docker-compose et j'ai essayé de me connecter
J'ai essayé de me connecter à MySQL en utilisant le modèle JDBC avec Spring MVC
J'ai essayé de casser le bloc avec java (1)
J'ai essayé de créer une fonction / écran d'administrateur de site commercial avec Java et Spring
[Azure] J'ai essayé de créer une application Java gratuitement ~ Se connecter avec FTP ~ [Débutant]
Connectez-vous à MySQL 8 avec Java
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai essayé de moderniser une application Java EE avec OpenShift.
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
Un exemple CRUD simple utilisant Java Servlet / JSP et MySQL
Facile à créer LINE BOT avec Java Servlet Partie 2: J'ai essayé des messages image et des modèles
[Java] Je veux vraiment connecter MySQL !!! ~ À propos de l'obtention du pilote JDBC et de l'emplacement du fichier JAR ~
J'ai essayé d'interagir avec Java
Connectez-vous de Java à MySQL à l'aide d'Eclipse
J'ai essayé d'utiliser OpenCV avec Java + Tomcat
J'ai essayé de créer une application de conversation en Java à l'aide de l'IA «A3RT»
J'ai un LSP et j'ai essayé de créer un environnement pour écrire Java avec Vim (NeoVim), mais je n'ai pas pu battre l'IDE ...
J'ai essayé de créer une méthode qui applique plusieurs filtres à la fois avec l'API Java Stream. Cela vous convient-il?
J'ai créé un programme qui recherche la classe cible à partir du processus surchargé avec Java
[JDBC ③] J'ai essayé d'entrer à partir de la méthode principale en utilisant des espaces réservés et des arguments.
J'ai essayé de faire une authentification de base avec Java
Connectez-vous à Aurora (MySQL) depuis une application Java
java j'ai essayé de casser un simple bloc
J'ai essayé d'implémenter un serveur en utilisant Netty
Je souhaite établir une connexion lorsqu'une base de données est créée à l'aide de Spring et MyBatis
J'ai essayé de faire un jeu simple avec Javafx ① "Trouvons le jeu du bonheur" (version inachevée ②)
J'ai essayé d'utiliser Wercker pour créer et publier une image Docker qui lance GlassFish 5
[Java] [SQL Server] Se connecter à SQL Server 2017 local à l'aide de JDBC pour SQL Server
J'ai essayé de lire et de sortir CSV avec Outsystems
J'ai essayé d'implémenter TCP / IP + BIO avec JAVA
Activer ou non SSL lors de l'utilisation de JDBC avec MySQL.
[Java 11] J'ai essayé d'exécuter Java sans compiler avec javac
J'ai essayé de faire fonctionner SQS en utilisant AWS Java SDK
J'ai essayé de créer une compétence Clova en Java
J'ai essayé de créer une fonction de connexion avec Java
J'ai essayé d'utiliser Log4j2 sur un serveur Java EE
J'ai essayé OCR de traiter un fichier PDF avec Java
J'ai essayé d'implémenter Sterling Sort avec Java Collector
Je veux faire des transitions d'écran avec kotlin et java!
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
[Java] Connectez-vous à MySQL
[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.
J'ai essayé de résumer les bases de kotlin et java
[Rails] J'ai essayé de créer une mini application avec FullCalendar
Connectez-vous à plusieurs instances MySQL avec SSL activé dans JDBC
J'ai essayé de faire coexister Java Optional et la clause de garde
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
J'ai essayé d'utiliser Dapr en Java pour faciliter le développement de microservices
Communication socket avec un navigateur Web utilisant Java et JavaScript ②
J'ai créé un client RESAS-API en Java
Communication socket avec un navigateur Web utilisant Java et JavaScript ①
Je veux implémenter diverses fonctions avec kotlin et java!
Un mémo pour démarrer la programmation Java avec VS Code (version 2020-04)
J'ai essayé de créer un environnement de développement padrino avec Docker