<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>글목록</h1>
<table border="1">
<tr>
<th width="50">번호</th>
<th width="400">제목</th>
<th width="150">작성자</th>
<th width="150">작성일</th>
<th width="100">조회수</th>
</tr>
<%
// study_jsp2 데이터베이스 board 테이블의 모든 레코드 조회 후
// 테이블 내의 tr 태그를 통해 각 레코드별로 한 줄씩 출력하기
// => 출력 위치에 표현식을 통해 getXXX() 메서드를 직접 사용(변수 저장 불필요)
// => 날짜(Timestamp 타입)는 getTimestamp() 또는 getDate() 사용
// => 조회 시 글번호(num)를 기준으로 내림차순 정렬 수행 => ORDER BY 절 필요
// 0. DB 연결에 필요한 문자열 변수 선언
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/study_jsp2";
String user = "root";
String password = "1234";
// 1. 드라이버 클래스 로드
Class.forName(driver);
// 2. DB 연결
Connection con = DriverManager.getConnection(url, user, password);
// 3. SQL 구문 작성 및 전달
// SELECT 컬럼명 FROM 테이블명 ORDER BY 정렬할컬럼명 정렬방식
// => 내림차순(10 -> 1) : DESC, 오름차순(1 -> 10) : ASC
String sql = "SELECT * FROM board ORDER BY num DESC";
PreparedStatement pstmt = con.prepareStatement(sql);
// 4. SQL 구문 실행 및 결과 처리
ResultSet rs = pstmt.executeQuery();
// 반복 작업을 통해 목록 출력을 위해서는 while 문 사용 필요
while(rs.next()) { // 다음 레코드(게시물)이 존재할 동안 반복
// <tr><td> 태그를 활용하여 각 게시물을 차례대로 출력
%>
<tr>
<td><%=rs.getInt("num") %></td>
<td><%=rs.getString("subject") %></td>
<td><%=rs.getString("name") %></td>
<td><%=rs.getDate("date") %></td>
<td><%=rs.getInt("readcount") %></td>
</tr>
<%
}
rs.close();
pstmt.close();
con.close();
%>
</table>
</body>
</html>