JSP_basic. 掲示板テーブルを作成して参照(DAO、VO、servlet)
VO, DAO, servlet
私たちが今まで学んだVO、DAO、servletを動員します.
MySQLデータベースに関連付けられた掲示板テーブルを作成します.
まずはMySQLでCREATE TABLEしたBoard TBL
2つだけ作成し、Eclipseに戻ってVOとDAOを作成します.
BoardVOの作成
Board TBLテーブルに適したVOを作成するために、カラムごとに変数を作成することを宣言しました.
次にgetter、sett、toStringを作成してBoardVOを完了します
BoardDAOの作成
プールは正常に接続されました.
次に、getBoardList()を作成して、Board TBLのすべてのデータをインポートします.
servletの作成
servletロールとしてのgetBoardList.Javaを作成します.
もちろんservletファイルです.
doGet()メソッドは、get方式でデータアクセスが行われていることを検出する.
BoardDAO dao = BoardDAO.getInstance();
List boardList = dao.getBoardList();
BoardDAOとBoardVOを受信するために実行されます.
あとで
request.setAttribute("boardList", boardList);表示
VOとDAOで受信した基板リストを基板リストとして保存します.
RequestDispatcher dp = request.getRequestDispatcher("/board/getBoardList.jsp");
結果ページgetBoardListはRequestDispatcherとして宛先を指します.jspとして宣言します.
では.
dp.forward(request, response);転送が実行されます.
結果ページの表形式の作成
getBoardList.jspの専門家.
開始点をページとすると、データはありません.
表は画面上で正しく実装されていません.
/bordListに接続すると、JDBCとservletはデータベースのデータをELコードに挿入します.
テーブルが完成します.
幸いなことに、結果は予想通りでした.
VOのgetterとsetter to String
DAOのJDBC DBバインド構文return
どうもありがとうございます.
まずはここまで
私たちが今まで学んだVO、DAO、servletを動員します.
MySQLデータベースに関連付けられた掲示板テーブルを作成します.
まずはMySQLでCREATE TABLEしたBoard TBL
2つだけ作成し、Eclipseに戻ってVOとDAOを作成します.
BoardVOの作成
// BoardVO 코드 전문입니다.
package kr.co.ict.domain;
import java.sql.Date;
public class BoardVO {
private int boardNum;
private String title;
private String content;
private String writer;
private Date bDate;
private Date mDate;
private int hit;
@Override
public String toString() {
return "BoardVO [boardNum=" + boardNum + ", title=" + title + ", content=" + content + ", writer=" + writer
+ ", bDate=" + bDate + ", mDate=" + mDate + ", hit=" + hit + "]";
}
public int getBoardNum() {
return boardNum;
}
public void setBoardNum(int boardNum) {
this.boardNum = boardNum;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public Date getbDate() {
return bDate;
}
public void setbDate(Date bDate) {
this.bDate = bDate;
}
public Date getmDate() {
return mDate;
}
public void setmDate(Date mDate) {
this.mDate = mDate;
}
public int getHit() {
return hit;
}
public void setHit(int hit) {
this.hit = hit;
}
}
datetimeデータ型を持つカラムは、dateデータ型(java.sql.Date)として宣言できます.Board TBLテーブルに適したVOを作成するために、カラムごとに変数を作成することを宣言しました.
次にgetter、sett、toStringを作成してBoardVOを完了します
BoardDAOの作成
package kr.co.ict.domain;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class BoardDAO {
private DataSource ds;
public static BoardDAO dao = new BoardDAO();
private BoardDAO() {
try {
Context ct = new InitialContext();
ds = (DataSource)ct.lookup("java:comp/env/jdbc/mysql");
} catch (Exception e) {
e.printStackTrace();
}
}
public static BoardDAO getInstance() {
if(dao == null) {
dao = new BoardDAO();
}
return dao;
}
public List<BoardVO> getBoardList(){
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<BoardVO> boardList = new ArrayList<>();
try {
con = ds.getConnection();
String sql = "SELECT * FROM boardTbl";
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()) {
BoardVO board = new BoardVO();
System.out.println("집어넣기 전 : " + board);
board.setBoardNum(rs.getInt(1));
board.setTitle(rs.getString(2));
board.setContent(rs.getString(3));
board.setWriter(rs.getString(4));
board.setbDate(rs.getDate(5));
board.setmDate(rs.getDate(6));
board.setHit(rs.getInt(7));
System.out.println("집어넣은 후 : " + board);
boardList.add(board);
}
System.out.println("리스트에 쌓인 자료 체크 : " + boardList);
} catch(Exception e) {
e.printStackTrace();
} finally {
try {
con.close();
pstmt.close();
rs.close();
} catch(Exception e) {
e.printStackTrace();
}
}
return boardList;
} // getBoardList() END.
}
private DataSource ds;BoardDAOクラスとして宣言されるグローバル変数.プールは正常に接続されました.
次に、getBoardList()を作成して、Board TBLのすべてのデータをインポートします.
servletの作成
servletロールとしてのgetBoardList.Javaを作成します.
もちろんservletファイルです.
package kr.co.ict;
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 kr.co.ict.domain.BoardDAO;
import kr.co.ict.domain.BoardVO;
/**
* Servlet implementation class getBoardList
*/
@WebServlet("/boardList")
public class getBoardList extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public getBoardList() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
BoardDAO dao = BoardDAO.getInstance();
List<BoardVO> boardList = dao.getBoardList();
System.out.println("데이터 받아오는지 확인 : " + boardList);
request.setAttribute("boardList", boardList);
RequestDispatcher dp = request.getRequestDispatcher("/board/getBoardList.jsp");
dp.forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dp = request.getRequestDispatcher("/board/getBoardList.jsp");
dp.forward(request, response);
}
}
/board Listをアドレスとするservletが作成されました.doGet()メソッドは、get方式でデータアクセスが行われていることを検出する.
BoardDAO dao = BoardDAO.getInstance();
List boardList = dao.getBoardList();
BoardDAOとBoardVOを受信するために実行されます.
あとで
request.setAttribute("boardList", boardList);表示
VOとDAOで受信した基板リストを基板リストとして保存します.
RequestDispatcher dp = request.getRequestDispatcher("/board/getBoardList.jsp");
結果ページgetBoardListはRequestDispatcherとして宛先を指します.jspとして宣言します.
では.
dp.forward(request, response);転送が実行されます.
結果ページの表形式の作成
getBoardList.jspの専門家.
<%@page import="kr.co.ict.getBoardList"%>
<%@page import="kr.co.ict.domain.BoardVO"%>
<%@page import="java.util.List"%>
<%@page import="kr.co.ict.domain.BoardDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div class="container">
<div class="col-sm-12">
<table class = "table table-primary table-striped">
<thead>
<tr>
<th>글 번 호</th>
<th>제 목</th>
<th>글 쓴 이</th>
<th>작성시간</th>
<th>수정시간</th>
<th>조 회 수</th>
</tr>
</thead>
<tbody>
<c:forEach var="board" items="${boardList}">
<tr>
<td>${board.boardNum}</td>
<td>${board.title}</td>
<td>${board.writer}</td>
<td>${board.bDate}</td>
<td>${board.mDate}</td>
<td>${board.hit}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</body>
</html>
servletとELを使用して、スクリプトを必要としない簡潔なjspファイルを作成しました.開始点をページとすると、データはありません.
表は画面上で正しく実装されていません.
/bordListに接続すると、JDBCとservletはデータベースのデータをELコードに挿入します.
テーブルが完成します.
幸いなことに、結果は予想通りでした.
VOのgetterとsetter to String
DAOのJDBC DBバインド構文return
どうもありがとうございます.
まずはここまで
Reference
この問題について(JSP_basic. 掲示板テーブルを作成して参照(DAO、VO、servlet)), 我々は、より多くの情報をここで見つけました https://velog.io/@nugoory20/JSPbasic.-게시판-테이블-만들어서-조회해보기DAO-VO-servletテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol