Créez un tableau d'affichage simple avec Java + MySQL

board.PNG

J'ai créé un babillard simple en utilisant mysql.

Aperçu

-Afficher l'ID, le nom, le commentaire et l'horodatage sur le tableau d'affichage. -Si aucun nom ou commentaire n'est entré, un message d'erreur apparaîtra.

Où j'ai eu du mal

-Je ne savais pas comment récupérer les données stockées dans la base de données. Au début, j'ai essayé de récupérer l'ID, le nom, le commentaire et l'horodatage séparément dans le tableau, mais cela n'a pas fonctionné. ArrayList peut stocker l'instance entière!

-Je ne savais pas comment récupérer le contenu de ArrayList avec jsp. J'ai essayé de le supprimer avec la méthode EL, mais cela n'a pas fonctionné. J'ai pu le récupérer en utilisant forEach dans la bibliothèque de balises principale de JSTL.

-Une erreur de fuseau horaire se produit lors de la connexion à mysql. Modifiez l'URL de connexion en vous référant à ce qui suit. Si vous souhaitez utiliser l'heure japonaise, remplacez la fin par JST. Que faire si "La valeur du fuseau horaire du serveur" donne une erreur lors de l'exécution de l'application dans Grails 3 + MySQL

Code source

model

Board.java


package model;

import java.io.Serializable;
import java.sql.Timestamp;

public class Board implements Serializable {
	private int id;
	private String name;
	private String comment;
	private Timestamp time;


	public Timestamp getTime() {
		return time;
	}
	public void setTime(Timestamp time) {
		this.time = time;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getComment() {
		return comment;
	}
	public void setComment(String comment) {
		this.comment = comment;
	}

}

FindCommentDAO.java


package model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class FindCommentDAO {

	public List<Board> findcomment() {

		// id,name,Liste pour stocker les commentaires
		List<Board> list = new ArrayList<>();

		final String jdbcId = "id";
		final String jdbcPass = "password";
		final String jdbcUrl = "jdbc:mysql://localhost:3306/dbname?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=JST";

		Connection con = null;

		try {

			con = DriverManager.getConnection(jdbcUrl, jdbcId, jdbcPass);

			System.out.println("Connected....");

			try {
				Statement st = con.createStatement();
				String sql = "select * from board";

				try {
					//Envoyer SQL
					ResultSet rs = st.executeQuery(sql);

					while (rs.next()) {
						//Identifiant récupéré de la base de données,name,définir le commentaire sur JavaBeans
						Board bo = new Board();
						bo.setId(rs.getInt("id"));
						bo.setName(rs.getString("name"));
						bo.setComment(rs.getString("comment"));
						bo.setTime(rs.getTimestamp("time"));

						//Enregistrez-en un dans la liste. Des éléments sont ajoutés à la fin.
						list.add(bo);
					}

					rs.close();
					st.close();

				} catch (SQLException e) {
					e.printStackTrace();
				}

			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				//Connexion à la base de données déconnectée
				if (con != null) {
					try {
						con.close();

					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			}
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("Connection Failed.");
			return null;
		}
		return list;

	}

}

FindCommentLogic.java


package model;

import java.util.List;

public class FindCommentLogic {
	public List<Board> executeFindComment() {
		FindCommentDAO fcdao = new FindCommentDAO();
		List<Board> list = fcdao.findcomment();
		return list;
	}

}

AddCommentDAO.java


package model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class AddCommentDAO {

	//ID à DB,name,Méthode pour ajouter un commentaire
	public AddCommentDAO(Board bo) {

		if(bo.getName().isEmpty()) {
			bo.setName( "Anonyme");
		}
		if(bo.getComment().isEmpty()) {
			bo.setComment( "sans commentaire");
		}


		final String jdbcId = "id";
		final String jdbcPass = "password";
		final String jdbcUrl = "jdbc:mysql://localhost:3306/dbname?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=JST";

		Connection con = null;

		try {

			con = DriverManager.getConnection(jdbcUrl, jdbcId, jdbcPass);

			System.out.println("Connected....");

			try {

				PreparedStatement ps = con.prepareStatement("INSERT INTO board (name, comment) VALUES (?, ?)");

				ps.setString(1, bo.getName());
				ps.setString(2, bo.getComment());

				//Envoyer du papier à lettres
				int r = ps.executeUpdate();

				if (r != 0) {
					System.out.println(r + "Ajout de l'écriture.");
				} else {
					System.out.println("Impossible d'écrire.");
				}

				ps.close();

			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				//Connexion à la base de données déconnectée
				if (con != null) {
					try {
						con.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			}
		} catch (SQLException e) {

			e.printStackTrace();
			System.out.println("Connection Failed.");

		}

	}

}

AddCommentLogic


package model;

public class AddCommentLogic {
	public void executeAddComment(Board bo) {
		AddCommentDAO acdao = new AddCommentDAO(bo);
	}
}

view

main.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">


<script type="text/javascript">

function check(){
	var flag = 0;

	if(document.form1.name.value == ""){
		flag = 1;
	}
	else if(document.form1.comment.value == ""){
		flag = 1;
	}

	if(flag){
		window.alert('Veuillez entrer votre nom et commentaire'); 
		return false; //Arrêter d'envoyer
	}
	else{
		return true; //Effectuer l'envoi
	}
}
</script>

<title>tableau d'affichage</title>
</head>
<body>
<form action="/board/BoardServlet" method="post" name="form1" onSubmit="return check()">
<p>Nom:<input type="text" name="name"></p>
<p>commentaire:<br>
<textarea name="comment" rows="5" cols="40"></textarea>
</p>
<p><input type="submit" value="Envoyer"><input type="reset" value="réinitialiser">
</p>
</form>

<c:forEach var="list" items="${listAttribute}">
<p>ID:<c:out value="${list.id}"/>Nom:<c:out value="${list.name}"/>Date:<c:out value="${list.time}"/><br>
<c:out value="${list.comment}"/></p>
</c:forEach>

</body>
</html>

controller

BoardServlet.java


package servlet;

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

import javax.servlet.RequestDispatcher;
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 javax.servlet.http.HttpSession;

import model.AddCommentLogic;
import model.Board;
import model.FindCommentLogic;

/**
 * Servlet implementation class BoardServlet
 */
@WebServlet("/BoardServlet")
public class BoardServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public BoardServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

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

		//Je veux passer à la classe d'auditeur
		request.setCharacterEncoding("UTF-8");

		//Vérifier les commentaires existants
		FindCommentLogic fcl = new FindCommentLogic();
		List<Board> list = fcl.executeFindComment();

		//Enregistrer la liste de commentaires dans l'étendue de la session
		HttpSession session = request.getSession();
		session.setAttribute("listAttribute", list);

		RequestDispatcher rd =request.getRequestDispatcher("/WEB-INF/jsp/main.jsp");
		rd.forward(request, response);
	}

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

		request.setCharacterEncoding("UTF-8");

		//Obtenez la valeur saisie
		String name = request.getParameter("name");
		String comment = request.getParameter("comment");

		//Stocker dans JavaBeans
		Board bo = new Board();
		bo.setName(name);
		bo.setComment(comment);

		//Stocker dans mysql
		AddCommentLogic acl = new AddCommentLogic();
		acl.executeAddComment(bo);

		//Obtenez le commentaire qui vient d'être saisi et le commentaire existant de mysql
		FindCommentLogic fcl = new FindCommentLogic();
		List<Board> list = fcl.executeFindComment();

		//Enregistrer la liste de commentaires dans l'étendue de la session
		HttpSession session = request.getSession();
		session.setAttribute("listAttribute", list);

		RequestDispatcher rd =request.getRequestDispatcher("/WEB-INF/jsp/main.jsp");
		rd.forward(request, response);

	}

}

Recommended Posts

Créez un tableau d'affichage simple avec Java + MySQL
Essayez de créer un babillard en Java
Créez une application Web simple avec Dropwizard
Créez un lot à la demande simple avec Spring Batch
[Retrait des rails] Créez une fonction de retrait simple avec des rails
Créer un graphique à barres simple avec MPAndroidChart
Créez un serveur Web simple avec la bibliothèque standard Java com.sun.net.httpserver
Créez une application de recherche simple avec Spring Boot
Créer un CSR avec des informations étendues en Java
[Windows] [IntelliJ] [Java] [Tomcat] Créer un environnement pour Tomcat 9 avec IntelliJ
Créons un processus chronométré avec la minuterie de Java! !!
[Java] Créer un filtre
[Java] Créer une collection avec un seul élément
Créer une image docker pour exécuter une application Java simple
[Débutant] Créez un jeu compétitif avec des connaissances de base sur Java
[Note] Créez un environnement Java à partir de zéro avec docker
Créez un site de démonstration simple avec Spring Security avec Spring Boot 2.1
Créer une méthode java [Memo] [java11]
[Java] Créer un fichier temporaire
Créez un terrain de jeu avec Xcode 12
Connectez-vous à MySQL 8 avec Java
[Java] Dessine un motif simple
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
Créez un CRUD simple avec SpringBoot + JPA + Thymeleaf ③ ~ Ajouter une validation ~
[Débutant] Essayez de créer un jeu RPG simple avec Java ①
Créer un SlackBot avec AWS lambda et API Gateway en Java
Un exemple CRUD simple utilisant Java Servlet / JSP et MySQL
Créer une classe immuable avec JAVA
Créez un environnement Vue3 avec Docker!
Construire un projet Java avec Gradle
3 Implémentez un interpréteur simple en Java
Créer un projet Java à l'aide d'Eclipse
Un exemple simple de rappels en Java
Créez des exceptions avec une interface fluide
Implémentez un serveur API Web REST simple avec Spring Boot + MySQL
Créez un CRUD simple avec SpringBoot + JPA + Thymeleaf ④ ~ Personnaliser le message d'erreur ~
Créez une application mémo avec Tomcat + JSP + Servlet + MySQL à l'aide d'Eclipse
Je ne peux pas créer une classe Java avec un nom spécifique dans IntelliJ
Créez une énumération haute performance avec des champs et des méthodes comme Java avec JavaScript
J'ai essayé de créer une fonction de groupe (babillard) avec Rails
[Java] Créer et appliquer un masque des diapositives
[Java] Créer un module exécutable avec Gradle
Créez un fichier jar avec la commande
[Rails6] Créer une nouvelle application avec Rails [Débutant]
Les débutants créent des applications Web avec Java et MySQL (ajout à tout moment)
Créez un CRUD simple avec SpringBoot + JPA + Thymeleaf ② ~ Création d'écran et de fonctions ~
Construire un environnement Rails 6 + MySQL avec Docker compose
[Java] Créez un fichier jar compressé et non compressé avec la commande jar
Créons un environnement de développement Java (mise à jour)
Je souhaite créer un SNS Web sombre avec Jakarta EE 8 avec Java 11
Créer une application TODO dans Java 7 Créer un en-tête
Créez une classe temporaire avec le nouvel Object () {}
[docker] [nginx] Créer un ALB simple avec nginx
Créez une API de tableau d'affichage avec certification et autorisation avec Rails 6 # 1 Construction de l'environnement