습관제작소
22-05-26 JAVA (JDBC - 회원 가입) 본문
- 자바, 데이터 베이스 연동
- View
-사용자에게 보이는 화면
public class View {
public static void main(String[] args) {
// JoinMember 클래스 안에 있는
// insert() 메소드 호출!!
Scanner sc = new Scanner(System.in);
// 메뉴를 선택하세요
// [1] 회원가입 [2]회원정보수정 [3]회원탈퇴 [4]로그인 [5]나가기
// int menu = 스캐너를 통해서 정수 입력
// menu가 1이면
// ====회원가입====
// ID를 입력하세요 >>
// PW를 입력하세요 >>
// 이름을 입력하세여 >>
// 회원가입 성공 >> "회원가입 완료"
// 회원가입 실패 >> "중복된 ID입니다"
while(true) {
System.out.println("메뉴를 선택하세요");
System.out.print("[1] 회원가입 [2] 회원정보수정 [3] 회원탈퇴 [4]로그인 [5]나가기 >>");
int munu = sc.nextInt();
if(munu==1) {
//회원가입 기능
System.out.println("====회원가입====");
System.out.print("ID를 입력하세요 >> ");
String id = sc.next();
System.out.print("PW를 입력하세요 >> ");
String pw = sc.next();
System.out.print("이름를 입력하세요 >> ");
String name = sc.next();
MemberDTO dto = new MemberDTO(id, pw, name);
JoinMember dao = new JoinMember();
int cnt = dao.insert(dto);
if(cnt>0) {
System.out.println("회원가입 성공");
}else {
System.out.println("ID가 중복되었습니다.");
}
}else if(munu==5){
System.out.println("종료 되었습니다.");
break;
}
}
- DTO
public class MemberDTO {
// DTO란?
// data transfer object
// VO(Value OBfect)와 같은 개념
// 디자인 패턴 MVC(Model, view, Controller)에서
// 사용되는 VO DTO라고 부른다.
//field
String id, pw, name;
//생성자
public MemberDTO(String id, String pw, String name) {
super();
this.id = id;
this.pw = pw;
this.name = name;
}
//getter & setter
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- DAO
-DB연결
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class MemberDAO {
int cnt; // 변한 행의 개수를 저장하는 변수
Connection conn; // DB 연결 객체
PreparedStatement psmt; // SQL문 전달 객체
public int update() {
cnt = 0;
// 1. 동적 로딩
// 1-1. ojdb6.jar 파일 추가
// OracleDriver 클래스 로딩
try {
connect();
// 3. SQL문 실행
String sql = "update member set pw = '4321' where id = 'cln9654'";
psmt = conn.prepareStatement(sql);
cnt = psmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("DB 연결 실패");
} finally {
// 4. 닫기
close();
}
return cnt;
}
public int delete() {
connect();
String sql = "delete from member where id = 'cln9654'";
try {
psmt = conn.prepareStatement(null);
cnt = psmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
close();
}
return cnt;
}
private void connect() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
// 2. DB 연결
String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
String db_id = "hr";
String db_pw = "hr";
conn = DriverManager.getConnection(url, db_id, db_pw);
if (conn != null) {
System.out.println("DB 연결 성공");
}
} catch (ClassNotFoundException e) {
System.out.println("드라이버 로딩 실패");
} catch (SQLException e) {
System.out.println("DB 연결 실패");
}
}
private void close() {
try {
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
'Programing Language > JAVA STUDY' 카테고리의 다른 글
23-02-07 JAVA (객체 배열, 배열 복사) (0) | 2023.02.07 |
---|---|
23-02-06 JAVA (클래스와 객체 - static의 응용 싱글톤 패턴) (0) | 2023.02.06 |
22-05-23 JAVA Sort_Binery (0) | 2022.05.23 |
22-05-23 JAVA Sort_Selection (0) | 2022.05.23 |
22-05-20 JAVA 객체 (MP3) (0) | 2022.05.20 |
Comments