create table tboard(
num number primary key,
name varchar2(30) not null,
title varchar2(150) not null,
passwd varchar2(10) not null,
content varchar2(4000) not null,
reg_date date not null
);
create sequence tboard_seq;
글 작성 기능
<%
//전송된 데이터 인코딩 처리
request.setCharacterEncoding("utf-8");
//전송된 데이터 반환
String name = request.getParameter("name");
String title = request.getParameter("title");
String passwd = request.getParameter("passwd");
String content = request.getParameter("content");
//DB연동
Connection conn = null;
PreparedStatement pstmt = null;
String sql = null;
try{
//JDBC 수행 1단계 : 드라이버 로드
Class.forName(driverName);
//JDBC 수행 2단계 : Connection 객체 생성
conn = DriverManager.getConnection(jdbcUrl,dbId,dbPass);
//SQL문 작성
sql = "INSERT INTO tboard (num,name,title,passwd,"
+ "content,reg_date) VALUES (tboard_seq.nextval,"
+ "?,?,?,?,SYSDATE)";
//JDBC 수행 3단계 : PreparedStatement 객체 생성
pstmt = conn.prepareStatement(sql);
//?에 데이터 바인딩
pstmt.setString(1,name);
pstmt.setString(2,title);
pstmt.setString(3,passwd);
pstmt.setString(4,content);
//JDBC 수행 4단계 : SQL문 실행
pstmt.executeUpdate();
%>
게시글 읽기
<%
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = null;
try{
//JDBC 수행 1단계 : 드라이버 로드
Class.forName(driverName);
//JDBC 수행 2단계 : Connection 객체 생성
conn = DriverManager.getConnection(jdbcUrl,dbId,dbPass);
//SQL문 작성
sql = "SELECT * FROM tboard ORDER BY num DESC";
//JDBC 수행 3단계 : PreparedStatement 객체 생성
pstmt = conn.prepareStatement(sql);
//JDBC 수행 4단계 : SQL문을 테이블에 반영하고 결과행들을
//ResultSet에 담음
rs = pstmt.executeQuery();
%>
<table>
<tr>
<th>글번호</th>
<th>제목</th>
<th>작성자</th>
<th>작성일</th>
</tr>
<%
while(rs.next()){
int num = rs.getInt("num");
String name = rs.getString("name");
String title = rs.getString("title");
Date reg_date = rs.getDate("reg_date");
%>
<tr>
<td><%= num %></td>
<td><a href="s05_detailTest.jsp?num=<%=num%>"><%= title %></a></td>
<td><%= name %></td>
<td><%= reg_date %></td>
</tr>
<%
}//end of while
%>
</table>
<%
}catch(Exception e){
%>
<div class="result-display">
<span>오류 발생!</span>
</div>
<%
e.printStackTrace();
}finally{
//자원정리
if(rs!=null)try{rs.close();}catch(SQLException e){}
if(pstmt!=null)try{pstmt.close();}catch(SQLException e){}
if(conn!=null)try{conn.close();}catch(SQLException e){}
}
%>
글 수정
<%
//전송된 데이터 인코딩 처리
request.setCharacterEncoding("utf-8");
//전송된 데이터 반환
int num = Integer.parseInt(request.getParameter("num"));
String name = request.getParameter("name");
String title = request.getParameter("title");
String passwd = request.getParameter("passwd");
String content = request.getParameter("content");
Connection conn = null;
PreparedStatement pstmt = null;
String sql = null;
try{
//JDBC 수행 1단계 : 드라이버 로드
Class.forName(driverName);
//JDBC 수행 2단계 : Connection 객체 생성
conn = DriverManager.getConnection(jdbcUrl,dbId,dbPass);
//SQL문 작성
sql = "UPDATE tboard SET name=?,title=?,passwd=?"
+ ",content=? WHERE num=?";
//JDBC 수행 3단계 : PreparedStatement 객체 생성
pstmt = conn.prepareStatement(sql);
//?에 데이터 바인딩
pstmt.setString(1, name);
pstmt.setString(2, title);
pstmt.setString(3, passwd);
pstmt.setString(4, content);
pstmt.setInt(5, num);
//JDBC 수행 4단계 : SQL문 실행
pstmt.executeUpdate();
%>
<div class="result-display">
<div class="align-center">
글수정 완료!<br>
<input type="button" value="글상세"
onclick="location.href='s05_detailTest.jsp?num=<%=num%>'">
</div>
</div>
<%
}catch(Exception e){
%>
<div class="result-display">
<div class="align-center">
오류 발생! 글수정 실패!<br>
<input type="button" value="글수정 폼"
onclick="location.href='s06_updateTestForm.jsp?num=<%=num%>'">
</div>
</div>
<%
e.printStackTrace();
}finally{
//자원정리
if(pstmt!=null)try{pstmt.close();}catch(SQLException e){}
if(conn!=null)try{conn.close();}catch(SQLException e){}
}
%>
글 삭제
<%
//전송된 데이터 인코딩 처리
request.setCharacterEncoding("utf-8");
//전송된 데이터 반환
int num = Integer.parseInt(request.getParameter("num"));
Connection conn = null;
PreparedStatement pstmt = null;
String sql = null;
try{
//JDBC 수행 1단계 : 드라이버 로드
Class.forName(driverName);
//JDBC 수행 2단계 : Connection 객체 생성
conn = DriverManager.getConnection(jdbcUrl,dbId,dbPass);
//SQL문 작성
sql = "DELETE FROM tboard WHERE num=?";
//JDBC 수행 3단계 : PreparedStatement 객체 생성
pstmt = conn.prepareStatement(sql);
//?에 데이터 바인딩
pstmt.setInt(1, num);
//JDBC 수행 4단계 : SQL문 실행
pstmt.executeUpdate();
%>
<div class="result-display">
<div class="align-center">
글삭제 완료!<br>
<input type="button" value="목록 보기"
onclick="location.href='s02_selectTest.jsp'">
</div>
</div>
<%
}catch(Exception e){
%>
<div class="result-display">
<div class="align-center">
오류 발생! 글삭제 실패!<br>
<input type="button" value="목록 보기"
onclick="location.href='s02_selectTest.jsp'">
</div>
</div>
<%
e.printStackTrace();
}finally{
//자원정리
if(pstmt!=null)try{pstmt.close();}catch(SQLException e){}
if(conn!=null)try{conn.close();}catch(SQLException e){}
}
%>