Coding Note
[JSP] JDBC 연동 - DB 로그인, 로그아웃하기_1 본문
JDBC 연동해서 로그인, 로그아웃하기!
구현

코드
1. Web.xml(중요!!!!!!!)
<!-- 오라클 DB 접속 정보 : 초기화 매개변수 입력-->
<context-param>
<param-name>OracleDriver</param-name>
<param-value>oracle.jdbc.driver.OracleDriver</param-value>
</context-param>
<context-param>
<param-name>OracleURL</param-name>
<param-value>"연결할 oracleURL 작성"</param-value>
</context-param>
<context-param>
<param-name>OracleId</param-name>
<param-value>"연결할 oracleID 작성"</param-value>
</context-param>
<context-param>
<param-name>OraclePwd</param-name>
<param-value>"연결할 oraclePWD 작성"</param-value>
</context-param>
2. MemberDTO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | public class MemberDTO { //멤버 변수 private String id; private String pass; private String name; private String regidate; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getRegidate() { return regidate; } public void setRegidate(String regidate) { this.regidate = regidate; } } | cs |


3. JDBC 연동
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | public class JDBConnection { public Connection con; public PreparedStatement psmt; public ResultSet rs; //select 쿼리문의 결과를 저장할때 사용 public JDBConnection() { try { //JDBC 드라이버 로드 Class.forName("oracle.jdbc.driver.OracleDriver"); //DB에 연결 String url ="연결할 oracle uri"; String id = "아이디 입력"; String pwd = "비번 입력"; con = DriverManager.getConnection(url, id, pwd); System.out.println("DB 연결 성공"); } catch(Exception e) { e.printStackTrace(); } } public JDBConnection(String driver, String url, String id, String pwd) { try { //JDBC 드라이버 로드 Class.forName(driver); //DB에 연결 con = DriverManager.getConnection(url, id, pwd); System.out.println("DB 연결 성공-매개변수 생성자"); } catch (Exception e) { e.printStackTrace(); } } public JDBConnection(ServletContext application) { try { //JDBC 드라이버 로드 String driver = application.getInitParameter("OracleDriver"); Class.forName(driver); //DB에 연결 String url =application.getInitParameter("OracleURL"); String id =application.getInitParameter("OracleId"); String pwd =application.getInitParameter("OraclePwd"); con = DriverManager.getConnection(url, id, pwd); System.out.println("DB 연결 성공-매개변수 생성자2"); } catch(Exception e) { e.printStackTrace(); } } //연결 해제(자원반납) public void close() { try { if(rs != null) rs.close(); if(psmt != null) psmt.close(); if(con != null) con.close(); System.out.println("JDBC 자원해제"); } catch(Exception e){ e.printStackTrace(); } } } | cs |

4. MemberDAO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | public class MemberDAO extends JDBConnection{ // 명시된 DB로의 연결 완료된 MemberDAO 객체 생성 public MemberDAO(String drv, String url, String id, String pwd) { super(drv, url, id, pwd); } public MemberDTO getMember(String uid, String upass) { MemberDTO dto = new MemberDTO(); //쿼리문 String query = "SELECT * FROM MEMBER WHERE ID =? AND PASS = ?"; try { psmt = con.prepareStatement(query); psmt.setString(1, uid); //쿼리문의 첫번째 파라미터 값 설정 psmt.setString(2, upass); //쿼리문의 두번째 파라미터 값 설정 rs = psmt.executeQuery(); //쿼리문 실행 if(rs.next()) { //쿼리 결과로 얻은 회원정보를 DTO 객체에 저장 dto.setId(rs.getString("id")); dto.setPass(rs.getString("pass")); dto.setName(rs.getString(3)); dto.setRegidate(rs.getString(4)); } } catch(Exception e) { e.printStackTrace(); } return dto; //dto 객체 반환 } } | cs |
< 공부하기 >
1. JDBC(Java DataBase Connectivity)
- SQL문을 실행하여 데이터를 관리하기 위한 JAVA API임.
- 해당 DB의 JDBC를 이용하면 하나의 프로그램으로 DB를 관리할수 있음.
!중요!
2. JDBC를 사용한 DB연동 순서
1) JDBC 드라이버 로딩
2) 데이터베이스 접속을 위한 Connection 객체 생성
3) 쿼리문을 실행하기 위한 Statement/PreparedStatement 객체 생성
- PreparedStatement 객체
- 동적인 쿼리에 사용하며 동일한 쿼리문을 특정 값만 바꾸어서 여러번 실행해야 할때,
또는 매개변수가 많아서 쿼리문을 정리할때 사용
4) 쿼리 실행
- executeQuery(String sql) : select 문 실행할때 사용 (ResultSet 객체 반환)
- executeUpdate(String sql) : 삽입, 수정, 삭제와 관련된 SQL문 실행에 사용
5) 쿼리 실행 결과 값(ResultSet) 사용
- ResultSet의 시작점(BOf, before of file)
- ResultSet의 끝점(EOf, end of file)
- 로우(row, 데이터)를 하나씩 가져올때 파일포인터의 개념, 순차적으로 가져옴.
- next() : 다음 레코드로 이동, previous(), first(), last()
- getXxx(int ColumnIndex) : 설정한 ColumnIndex(필드 순번)의 필드 값을 가져옴.
- getXxx(String ColumnName) : 설정한 ColumnName의 필드 값을 가져옴.
6) 사용된 개체(ResultSet, PreparedStatement, Connection) 종료
- 사용을 끝내자마자 리소스 (객체)를 해제하는 것이 좋다!
'Web > Jsp' 카테고리의 다른 글
[JSP, DB] DB 연동 - 회원가입_유효성 검사 및 조회하기 (0) | 2022.02.07 |
---|---|
[JSP] JDBC 연동 - DB 로그인, 로그아웃하기_2 (0) | 2022.02.06 |
[JSP] ForwardActionTag 로그인 - 환영합니다! (0) | 2022.02.05 |
[JSP] Cookie 활용한 아이디 정보 저장하기 (0) | 2022.02.04 |
[JSP] 학점 출력하기! (0) | 2022.02.03 |