<%@ 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> <form action="age_db.jsp"> <label>이름 <input type="text" name="name"> </label><br> <input type="submit"> </form> <input type="button" value="전체 확인하기" onclick="selectAll();"> </body> <script> function selectAll() { location.href = "age_all.jsp"; } </script> </html>


package com.koit.web.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.DriverManager; public class DBConnection { static Connection getConnection() { Connection conn = null; //DB 연결 try { String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@localhost:1521:xe"; String user = "jsp"; String password = "jsp"; Class.forName(driver); conn = DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException e) { e.printStackTrace(); System.out.println("드라이버를 찾지 못했습니다."); } catch (SQLException e) { e.printStackTrace(); System.out.println("DB 접속 오류"); } catch (Exception e) { e.printStackTrace(); System.out.println("알 수 없는 오류"); } return conn; }
- Connection 객체를 리턴받는다.
직접 DB와 연결을 하고 Query문을 날리는 객체는 DAO이므로 생성한 DB 커넥션 객체를 이용하여 결과를 받아 올 DAO를 만들어 준다.MemberDAO는 멤버테이블에 접근하는 DAO게시판 DB에 접근해야 한다면 BoardDAO유저에 관한 DB에 접근해야 한다면 UserDAO 에서 로직을 처리한다.DAO는 DB Connection을 획득해서 Query문을 처리하는 부분으로, 프로젝트의 기능마다 1개씩 있어야 한다.
package com.koit.web.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class MemberDAO { //DB 접근 Connection conn; PreparedStatement pstm; ResultSet rs ; public int getAge(String name) { int age = 0; String sql = "SELECT AGE FROM MEMBER WHERE NAME = ?"; try { conn = DBConnection.getConnection(); pstm = conn.prepareStatement(sql); pstm.setString(1, name); rs = pstm.executeQuery(); if(rs.next()) { age = rs.getInt(1); } } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return age; } }
- jsp 파일에서는 최소한의 리턴값만 받아서 출력!
<%@page import="java.sql.ResultSet"%> <%@ 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> <% String name = request.getParameter("name"); %> <jsp:useBean id="mdao" class="com.koit.web.dao.MemberDAO"/> <%int age = mdao.getAge(name); %> 이름 : <%=name %></br> 나이 : <%=age %></br> <input type="button" value="다시 검색하기" onclick="location.href='age_search.jsp'"> </body> </html>
- 파라미터로 사용자가 입력한 name을 받는다.
- MemberDAO의 객체를 생성한다.
- MemberDAO에서는 DB Connection 객체를 받아서, DB 쿼리문의 결과를 리턴받는다.
- jsp에서는 리턴값만 받아서 최소한의 코드로 출력한다.


