오늘의 노래 추천 ☕
B@ck 2 where we Belong
- 아티스트
- Billlie (빌리)
- 앨범
- the Billage of perception: chapter two
- 발매일
- 1970.01.01
와 이건 진짜 나만 알려고했는데 보따리 풀었다
DAY 13
[ 로그인을 위한 JDBC 코드 작성 실습 ]
사용자에게 아이디와 비밀번호를 입력받아 로그인을 하고 결과 출력하기
// 로그인을 위해 사용자에게 ID PW 입력받기
Scanner sc = new Scanner(System.in);
System.out.print("ID를 입력해주세요 : ");
String id = sc.next();
System.out.print("비밀번호를 입력해주세요 : ");
String pw = sc.next();
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
try { // 1. 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
// 2. DB 연결
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "hr";
String password = "12345";
conn = DriverManager.getConnection(url, user, password);
if(conn != null) {
System.out.println("연결성공");
}else {
System.out.println("연결실패");
}
// 3. sql Query 문 작성
// 로그인 > 테이블에 데이터가 있는지, 그 데이터와 일치하는지 확인
// 아이디, 비밀번호가 일치하는 데이터의 모든 컬럼 가져오기
String sql = "SELECT * FROM BIGDATAMEMBER WHERE ID = ? AND PASSWORD = ?";
psmt = conn.prepareCall(sql);
// ? 인자 채워주기 (데이터 바인딩)
psmt.setString(1, id);
psmt.setString(2, pw);
// 4. sql 문 실행
rs = psmt.executeQuery();// 리턴타입이 ResultSet
// 실행을 위해서 executeQuery 를 사용하는데 리턴타입이 ResultSet
// 조회된 데이터를 테이블형태로 표현하는 자료구조
// cursor 형태로 컬럼명을 가르키고 있기에 한칸 내려줘야 데이터에 접근 가능
// * cursor 가 가르키고 있는 데이터만 가져올 수 있음
// rs.next();
// 커서를 내렸을 때 값이 있으면 true 를 반환 그렇지않으면 false 반환
if(rs.next()) {
String uName = rs.getString(3);
System.out.println(uName+"님 환영합니다");
}else {
System.out.println("로그인에 실패했습니다");
System.out.println("ID 와 비밀번호를 확인해주세요");
}
} catch (Exception e) {
// ClassNotFoundException e
// 모든 예외 클래스의 슈퍼 클래스가 Exception
// Exception e = new SQLExecption(); ㅡ> 업캐스팅
e.printStackTrace();
}finally { // 5. DB 연결 종료(자원 반납)
try {
if(rs != null) {
rs.close();
}if(psmt != null) {
psmt.close();
}if(conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
[ 회원 정보 삭제를 위한 JDBC 코드 작성 실습 ]
사용자에게 아이디와 비밀번호를 입력받아 해당 회원 정보를 삭제하기 DELETE
// 회원 정보를 삭제하는 기능
// 사용자에게 ID, PW 입력받기
Scanner sc = new Scanner(System.in);
System.out.print("삭제할 계정의 아이디를 입력하세요 : ");
String id = sc.next();
System.out.print("삭제할 계정의 비밀번호를 입력하세요 : ");
String pw = sc.next();
Connection conn = null;
PreparedStatement psmt = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "hr";
String password = "12345";
conn = DriverManager.getConnection(url, user, password);
if(conn!=null) {
System.out.println("연결성공");
}else System.out.println("연결실패");
String sql = "DELETE FROM BIGDATAMEMBER WHERE ID = ? AND PASSWORD = ?";
psmt = conn.prepareStatement(sql);
psmt.setString(1, id);
psmt.setString(2, pw);
int row = psmt.executeUpdate();
if(row>0) {
System.out.println("회원정보 삭제 성공");
}else System.out.println("회원정보 삭제 실패");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(psmt != null) {
psmt.close();
}if(conn != null) {
conn.close();
}
}catch (SQLException e) {
e.printStackTrace();
}
[ 회원 정보 조회를 위한 JDBC 코드 작성 실습 ]
테이블의 전체 정보를 조회하기 SELECT
// 실행을 하면 등록되어 있는 회원 정보를 모두 보여주기
// ====== 회원정보 ======
// id 이름 나이 점수
// 값 값 값 값
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "hr";
String password = "12345";
conn = DriverManager.getConnection(url, user, password);
if(conn!=null) System.out.println("연결성공");
else System.out.println("연결실패");
String sql = "SELECT * FROM BIGDATAMEMBER";
psmt = conn.prepareStatement(sql);
rs = psmt.executeQuery();
System.out.println("========= 회원정보 =========");
System.out.println("id pw 이름 나이 점수");
while(rs.next()) {
for(int i=1; i<6; i++) {
String data = rs.getString(i);
System.out.print(data+" ");
}
System.out.println();
}
System.out.println("조회 완료");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(rs != null) {
rs.close();
}if(psmt != null) {
psmt.close();
}if(conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
[ 회원 정보 수정을 위한 JDBC 코드 작성 실습 ]
사용자에게 아이디와 비밀번호, 점수를 입력받아 점수를 수정하기 UPDATE
자원 반납은 생략

Bye
'JAVA' 카테고리의 다른 글
DAY 14, 15 ( JDBC 코드 MVC 패턴으로 변환 실습, DAO, DTO ) (0) | 2024.06.07 |
---|---|
Java Festival 최종 (0) | 2024.06.04 |
DAY 12 ( MP3Player 실습, MVC 패턴 실습(refactoring), JDBC ) (0) | 2024.06.04 |
DAY 11 ( 추상클래스, 인터페이스, MVC, jar 파일 추가, mp3 불러오기 실습 ) (0) | 2024.06.03 |
DAY 10 ( 생성자, VO, 상속, 오버라이딩, 객체 casting, ArrayList ) (1) | 2024.05.31 |