Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원/5월

22.05.24 - 회원가입, 로그인 기능 구현 !!

giggs 2022. 5. 27. 11:31

진행순서

1. 기본 세팅 [ 도구 세팅, 메인클래스 세팅, 커넥션 얻기 세팅 ]

2. 회원가입 구현 - 실제 테스트

3. 로그인 구현 - 실제 테스트

4. close 작업해주기

 

 

기본세팅

 

 

1. 사용하는 도구들 따로 만들어주기

 

 

 

 

 


 

 

2. 메인 클래스 기본 세팅

 

 

 

 

 

 


 

 

 

3. 커넥션 얻어오기 - DB 접속 클래스 만들어주기

 

 

 

 

 

 

## 커넥션 얻기 메서드 체크

  • static으로 해주었고
  • Connection 타입 반환하게 해 주었다.
  • return con 필요했고 - 그래서 try문 바깥에 Connection con 선언 위치 조정

 

 

 

//파일에다가 ip, port, url 이런 연결 정보들을 저장
//파일에서 읽어 들여서 연결하는 식으로 실무
//당연히, 파일은 각자 본인 환경에 맞게 가지고 있으면 됩니다.
//그리고, 파일은 깃허브에 올리면 안 되겠죠? => 깃 이그노어

 

 

 

 

 


 

 

 

 

### 회원가입 기능 구현

 

 

 

 

## 회원가입 담당할 member클래스에서 작업 

 

 

 

 

1.  join() 메서드 생성 후 --- 기본 세팅 --- 입력받기

 

 

 

 

 


 

 

 

 

2.  회원가입 가능 여부 판단 --- 아이디 중복검사 

 

 

2-1 db에서 아이디 조회

 

 

 

 


 

 

 

2-2 조회 결과  rs.next = true; [ 실패 처리 ]

 

 

id로 조회했는데 결과가 있어서 rs.next()의 true나오면 이미 있는 id!

 

 

 


 

 

 

2-3 조회 결과 rs.next = false; [ DB 저장 - insert 쿼리 ]

 

 

중복체크 통과하면 - Insert 쿼리를 날려주어서 db에 저장

 

 

 

 


 

 

 

2-4 최종 아무것도 안 걸리면 실패 false 반환하도록 세팅

 

 

 

 

 

코드 끝!!

 

 

 

 


 

 

 

 

## 회원 가입 진행해보기

 

 

 

1. DB에서 테이블 임의 설정

 

 

 

 

 


 

 

 

2. java에서 회원가입 진행해보기

 

 

 

 

 

+ db에서 잘 입력되었나 테이블 확인~

 

 

회원가입 끝!

 

 

 


 

 

 

 

## 로그인 기능 구현

 

 

 

1.  id / pwd 입력받기

 

 

 

 


 

 

 

2. 디비에서 id 있나 조회해보기

 

 

id로 조회하기 // executeQuery() 한 거 체크 

 

 

 

 


 

 

 

3. id의 조회 결과에 따라 처리

  • 결과가 있다 == rs.next() = true --> db의 pwd와 입력한 pwd 비교 - 같으면 성공
  • 결과가 없다 == 로그인 실패

 

 

 

 

 

코드 끝!

 

 

 

 


 

 

 

 

## 로그인 진행해보기

 

## 메인에서 로그인 테스트!

 

 

 

1. DB 준비

 

 

 

 

 


 

 

 

2. JAVA에서 로그인 실행해보기

 

 

 

 

 

로그인 끝!

 

 

 

 

 


 

 

 

 

 

## CLOSE 작업해주기

 

 

 

1. 사용한 애들 반납해주는 close 작업이 필요하다.

  •  [ Connection , Statement , PreparedStatement, ResultSet ]

 

 

  1. close를 해주기 위해 변수 선언 위치를 try/catch 문 바깥쪽으로 변경해 주고 
  2. finally{ } 추가해서 close작업해줄 것이다.
  3. 각각의 것들은 close 작업하기 전에  NULL 인지 체크 필요

 

 

 

 

 


 

 

 

2. 단지 close 작업 필요한 것인데... 너무 번거롭고 길어졌다.

  • 해결 방법은?
  • Close 메서드를 만들어 주자!
  • DB 커넥션을 가져오기 위해 만들었던 OracleDB 클래스에 close 메서드를 만들어준다.

 

 

 

 

 

##CHECK 

  • 메서드 오버 로딩을 통한 메서드 구현 !! 
  • PreparedStatement 는 따로 안 만들어줘도 부모인 Statement에 걸려서 처리된다!
  • close(PreparedStatement 는 필요 X

 

 


 

 

3. OracleDB.close() 메서드 사용해서  finall 문 수정!

 

 

 

 

 

 


 

 

 



REVIEW


드디어 로그인 기능을 구현해보았다 
감격 ㅜㅜ

JAVA와 DB를 이용해서 회원가입을 하고 로그인을 해보았다
아직은 낯선 부분도 많고 잘 안된 부분도 있긴 하지만 ;)
JAVA - JDBC - DB를 같이 사용해본 첫 작업 ㅜㅜ

드라이버 등록 / 커넥션을 얻고 - 
이 커넥션을 이용해서 필요한 작업을 수행! 
이런 식으로 다른 작업도 응용해서 사용하는 것 같다.

앞으로 자주 사용할 흐름과 로직이니까
새로운 내용들 체크 잘해놓고 숙지해놓자!
후후 나도 이제 회원가입 / 로그인 처리 가능!! 크크



## CHECK POINT

STATEMENT의 불편함과 문제점을 대비
- PreparedStatement 사용 -

PreparedStatement  실행 시 - 쿼리를 실행해서
resultSet을 가져오는 것인지
또는 작업이 잘 이루어졌나 결과를 확인하는 것인가에 따라서
executeQuery() 와
executeUpdate() 선택해서 사용

여러 곳에서 사용하는 도구는 클래스 하나 해서 따로 만들어서 사용

기능 동일 / 매개변수 다름 => 메서드 오버 로딩 통해 구현해주기