
오라클 드라이버를 들고와서 통로를 연결해야한다.
컴파일이 오라클 경로 드라이브를 쓰는구나
동적로딩
예외상황
1. 경로가 잘못되면
2. 프로젝트에 오라클드라이브 추가 ojdbc6.jar

3.예외처리 try catch
경로가 잘못되면 catch





url,id,pw 틀리면 에러
SQL문장이틀린것에 대한 예외처리
add catch
sql 문장 작성

모르니까 ?,?,?,?

psmt가 권한이 있어요 ? 채워줘야해요


실행
psmt.executeUpdate();
반환
회원가입 1, 0
int cnt = 0;
cnt = psmt.executeUpdate();

에러 나면 바로 catch
연결 종료되면 끊어줘는 finally
catch가 실행되도 finally됨

dao 데이터 중복되니까
dto 회원정보 여러개 뭉쳐서
세션 회원정보 유지
스코프 리쿼스트에 담아서 페이지 이동해서 보여줌
`package com.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
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 com.model.MemberDAO;
import com.model.MemberDTO;
@WebServlet("/JoinService")
public class JoinService extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//문제
// email, pw, phone, addr 4개의 데이터를
// 자바 콘솔창에 추력하시오 (out.println 은 아니다 아웃객체 필요)
request.setCharacterEncoding("EUC-KR");
String email = request.getParameter("email");
String pw = request.getParameter("pw");
String phone = request.getParameter("phone");
String addr = request.getParameter("addr");
//회원가입기능
int cnt =0;
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String db_id = "hr";
String db_pw = "12345";
String db_url = "jdbc:oracle:thin:@localhost:1521:xe";
conn = DriverManager.getConnection(db_url, db_id, db_pw);
String sql = "INSERT INTO MEMBER VALUES(?,?,?,?)";
psmt = conn.prepareStatement(sql);
psmt.setString(1, email);
psmt.setString(2,pw);
psmt.setString(3,phone);
psmt.setString(4,addr);
cnt = psmt.executeUpdate();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
// rs는 사용된적이 없으면 반납하지 않도록
// insert, update, delete메서드에서 실행시켜도 반납 x
if(rs != null)
rs.close();
if(psmt != null)
psmt.close();
if(conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
response.sendRedirect("main.jsp");
}
}
`
7.12
join서비스는 서블릿인데
클라이언트 데이터 받고 어느 페이지 가세요
jdbc로 데이터 연결
조그만 중국집은 한 두명오는데
1명이 주방, 서빙, 다하는데
중국집이 크면
역할 분담 필요 - 객체지향
SOLID 단일책임의 원칙
데이터접근 dao
가 회원가입 끝나면
컨트롤러 서블릿은 컨트롤러