Erstellen Sie mit Java + MySQL ein einfaches Bulletin Board

board.PNG

Ich habe mit MySQL ein einfaches Bulletin Board erstellt.

Überblick

Wo ich es schwer hatte

-Ich wusste nicht, wie ich die in der Datenbank gespeicherten Daten abrufen sollte. Zuerst habe ich versucht, ID, Name, Kommentar und Zeitstempel separat im Array abzurufen, aber es hat nicht funktioniert. ArrayList kann die gesamte Instanz speichern!

-Ich wusste nicht, wie ich den Inhalt von ArrayList mit jsp abrufen soll. Ich habe versucht, es mit der EL-Methode herauszunehmen, aber es hat nicht funktioniert. Ich konnte es mit forEach in der JSTL-Core-Tag-Bibliothek abrufen.

Quellcode

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 zum Speichern von Kommentaren
		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 {
					//Senden Sie SQL
					ResultSet rs = st.executeQuery(sql);

					while (rs.next()) {
						//ID aus DB abgerufen,name,Kommentar auf JavaBeans setzen
						Board bo = new Board();
						bo.setId(rs.getInt("id"));
						bo.setName(rs.getString("name"));
						bo.setComment(rs.getString("comment"));
						bo.setTime(rs.getTimestamp("time"));

						//Speichern Sie eine in der Liste. Elemente werden am Ende hinzugefügt.
						list.add(bo);
					}

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

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

			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				//Getrennte Datenbankverbindung
				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 zu DB,name,Methode zum Hinzufügen eines Kommentars
	public AddCommentDAO(Board bo) {

		if(bo.getName().isEmpty()) {
			bo.setName( "Anonym");
		}
		if(bo.getComment().isEmpty()) {
			bo.setComment( "kein Kommentar");
		}


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

				//Briefpapier senden
				int r = ps.executeUpdate();

				if (r != 0) {
					System.out.println(r + "Schreiben hinzugefügt.");
				} else {
					System.out.println("Konnte nicht schreiben.");
				}

				ps.close();

			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				//Getrennte Datenbankverbindung
				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('Bitte geben Sie Ihren Namen und Kommentar ein'); 
		return false; //Hör auf zu senden
	}
	else{
		return true; //Senden durchführen
	}
}
</script>

<title>schwarzes Brett</title>
</head>
<body>
<form action="/board/BoardServlet" method="post" name="form1" onSubmit="return check()">
<p>Name:<input type="text" name="name"></p>
<p>Kommentar:<br>
<textarea name="comment" rows="5" cols="40"></textarea>
</p>
<p><input type="submit" value="Senden"><input type="reset" value="zurücksetzen">
</p>
</form>

<c:forEach var="list" items="${listAttribute}">
<p>ID:<c:out value="${list.id}"/>Name:<c:out value="${list.name}"/>Datum:<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 {

		//Ich möchte in die Hörerklasse wechseln
		request.setCharacterEncoding("UTF-8");

		//Überprüfen Sie vorhandene Kommentare
		FindCommentLogic fcl = new FindCommentLogic();
		List<Board> list = fcl.executeFindComment();

		//Kommentarliste im Sitzungsbereich speichern
		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");

		//Holen Sie sich den eingegebenen Wert
		String name = request.getParameter("name");
		String comment = request.getParameter("comment");

		//In JavaBeans speichern
		Board bo = new Board();
		bo.setName(name);
		bo.setComment(comment);

		//In MySQL speichern
		AddCommentLogic acl = new AddCommentLogic();
		acl.executeAddComment(bo);

		//Holen Sie sich den gerade eingegebenen Kommentar und den vorhandenen Kommentar von MySQL
		FindCommentLogic fcl = new FindCommentLogic();
		List<Board> list = fcl.executeFindComment();

		//Kommentarliste im Sitzungsbereich speichern
		HttpSession session = request.getSession();
		session.setAttribute("listAttribute", list);

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

	}

}

Recommended Posts

Erstellen Sie mit Java + MySQL ein einfaches Bulletin Board
Versuchen Sie, ein Bulletin Board in Java zu erstellen
Erstellen Sie mit Dropwizard eine einfache Webanwendung
Erstellen Sie mit Spring Batch eine einfache On-Demand-Charge
[Schienenentnahme] Erstellen Sie eine einfache Entnahmefunktion mit Schienen
Erstellen eines einfachen Balkendiagramms mit MPAndroidChart
Erstellen Sie einen einfachen Webserver mit der Java-Standardbibliothek com.sun.net.httpserver
Erstellen Sie mit Spring Boot eine einfache Such-App
Erstellen Sie eine CSR mit erweiterten Informationen in Java
[Windows] [IntelliJ] [Java] [Tomcat] Erstellen Sie mit IntelliJ eine Umgebung für Tomcat 9
Lassen Sie uns mit Javas Timer einen zeitgesteuerten Prozess erstellen! !!
[Java] Erstellen Sie einen Filter
[Java] Erstellen Sie eine Sammlung mit nur einem Element
Erstellen Sie ein Docker-Image, um eine einfache Java-App auszuführen
[Anfänger] Erstellen Sie ein wettbewerbsfähiges Spiel mit grundlegenden Java-Kenntnissen
[Hinweis] Erstellen Sie mit Docker eine Java-Umgebung von Grund auf neu
Erstellen Sie mit Spring Security 2.1 eine einfache Demo-Site mit Spring Security
Erstellen Sie eine Java-Methode [Memo] [java11]
[Java] Erstellen Sie eine temporäre Datei
Erstellen Sie einen Spielplatz mit Xcode 12
Stellen Sie mit Java eine Verbindung zu MySQL 8 her
[Java] Zeichnen Sie ein einfaches Muster
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Erstellen Sie eine einfache CRUD mit SpringBoot + JPA + Thymeleaf ~ ~ Validierung hinzufügen ~
[Anfänger] Versuchen Sie, mit Java ein einfaches RPG-Spiel zu erstellen ①
Erstellen Sie einen SlackBot mit AWS Lambda & API Gateway in Java
Ein einfaches CRUD-Beispiel mit Java Servlet / JSP und MySQL
Erstellen Sie mit JAVA eine unveränderliche Klasse
Erstellen Sie mit Docker eine Vue3-Umgebung!
Erstellen eines Java-Projekts mit Gradle
3 Implementieren Sie einen einfachen Interpreter in Java
Erstellen Sie ein Java-Projekt mit Eclipse
Ein einfaches Beispiel für Rückrufe in Java
Erstellen Sie Ausnahmen mit einer Fluid-Schnittstelle
Erstellen Sie ein Maven-Projekt mit Befehlen
Implementieren Sie einen einfachen Web-REST-API-Server mit Spring Boot + MySQL
Erstellen Sie eine einfache CRUD mit SpringBoot + JPA + Thymeleaf ④ ~ Fehlermeldung anpassen ~
Erstellen Sie eine Memo-App mit Tomcat + JSP + Servlet + MySQL mit Eclipse
Ich kann in IntelliJ keine Java-Klasse mit einem bestimmten Namen erstellen
Erstellen Sie mit JavaScript eine leistungsstarke Aufzählung mit Feldern und Methoden wie Java
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen
[Java] Erstellen und Anwenden eines Folienmasters
[Java] Erstellen Sie mit Gradle ein ausführbares Modul
Erstellen Sie mit dem Befehl eine JAR-Datei
[Rails6] Erstelle eine neue App mit Rails [Anfänger]
Anfänger erstellen Web-Apps mit Java und MySQL (jederzeit hinzufügen)
Erstellen Sie eine einfache CRUD mit SpringBoot + JPA + Thymeleaf ② ~ Bildschirm- und Funktionserstellung ~
[Java] Erstellen Sie mit dem Befehl jar eine JAR-Datei, die sowohl komprimiert als auch nicht komprimiert ist
Lassen Sie uns eine Java-Entwicklungsumgebung erstellen (Aktualisierung)
Ich möchte mit Jakarta EE 8 mit Java 11 ein dunkles Web-SNS erstellen
Erstellen Sie eine TODO-App in Java 7 Create Header
Erstellen Sie eine temporäre Klasse mit new Object () {}
[Docker] [Nginx] Erstellen Sie mit Nginx eine einfache ALB
Erstellen Sie eine Bulletin-Board-API mit Zertifizierung und Autorisierung mit Rails 6 # 1 Environment Construction