DB - DB연동을 통한 회원관리 프로그램 구축 하는 퀴즈(2022-08-09)
2022. 8. 9. 01:39ㆍ3층 1구역 - 개발의 장/Oracle DataBase
인터페이스 - IDAO.java
package jdbc_concept5.DAO;
import java.util.ArrayList;
import jdbc_concept5.DTO.MemberDTO;
public interface IDAO {
public MemberDTO selectId(String id);
public int insertMember(MemberDTO member);
public ArrayList<MemberDTO> selectAll();
public int updateMember(MemberDTO member);
public int deleteMember(String id);
public int isExists(String id);
}
MemberDAO.java
package jdbc_concept5.DAO;
/*CREATE TABLE jdbc_concept5(
2 num number,
3 id varchar2(20),
4 pw varchar2(20),
5 name varchar2(20),
6 email varchar2(50)
7 );*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import jdbc_concept5.DTO.MemberDTO;
public class MemberDAO implements IDAO {
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
public MemberDAO() {
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "<권한받은 계정>";
String password = "<설치 시 설정한 비밀번호>";
try {
Class.forName("oracle.jdbc.OracleDriver");
con = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public int isExists(String id) {
String sql = "SELECT count(id) FROM jdbc_concept5 WHERE id=?";
int count = 0;
try {
ps = con.prepareStatement(sql);
ps.setString(1, id);
rs = ps.executeQuery();
if (rs.next()) {
count = rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
}
return count;
}
@Override
public MemberDTO selectId(String id) {
String sql = "SELECT * FROM jdbc_concept5 WHERE id=?";
try {
ps = con.prepareStatement(sql);
ps.setString(1, id);
rs = ps.executeQuery();
if (rs.next()) {
MemberDTO member = new MemberDTO();
member.setId(rs.getString("id"));
member.setNum(rs.getInt("num"));
member.setPw(rs.getString("pw"));
member.setName(rs.getString("name"));
member.setEmail(rs.getString("email"));
return member;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public int insertMember(MemberDTO member) {
/*- num : int // 회원번호
- id : String // 아이디
- pw : String // 패스워드
- name : String // 이름
- email : String // 이메일*/
String sql = "INSERT INTO jdbc_concept5 VALUES(?, ?, ?, ?, ?)";
int check = 0;
try {
ps = con.prepareStatement(sql);
ps.setInt(1, member.getNum());
ps.setString(2, member.getId());
ps.setString(3, member.getPw());
ps.setString(4, member.getName());
ps.setString(5, member.getEmail());
ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return check;
}
@Override
public ArrayList<MemberDTO> selectAll() {
String sql = "SELECT * FROM jdbc_concept5";
ArrayList<MemberDTO> members = new ArrayList<>();
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
MemberDTO member = new MemberDTO();
member.setNum(rs.getInt("num"));
member.setId(rs.getString("id"));
member.setPw(rs.getString("pw"));
member.setName(rs.getString("name"));
member.setEmail(rs.getString("email"));
members.add(member);
}
} catch (Exception e) {
e.printStackTrace();
}
return members;
}
@Override
public int updateMember(MemberDTO member) {
String sql = "UPDATE jdbc_concept5 SET num=?, pw=?, name=?, email=? WHERE id=?";
int check = 0;
try {
ps = con.prepareStatement(sql);
ps.setInt(1, member.getNum());
ps.setString(2, member.getPw());
ps.setString(3, member.getName());
ps.setString(4, member.getEmail());
ps.setString(5, member.getId());
} catch (Exception e) {
e.printStackTrace();
}
return check;
}
@Override
public int deleteMember(String id) {
String sql = "DELETE FROM jdbc_concept5 WHERE id=?";
int check = 0;
try {
ps = con.prepareStatement(sql);
ps.setString(1, id);
check = ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return check;
}
public void disconnection() {
try {
if (rs != null)
rs.close();
if (ps != null)
ps.close();
if (con != null)
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
인터페이스 - IDTO.java
package jdbc_concept5.DTO;
public interface IDTO {
public int getNum();
public void setNum(int num) ;
public String getId();
public void setId(String id);
public String getPw() ;
public void setPw(String pw) ;
public String getName() ;
public void setName(String name) ;
public String getEmail() ;
public void setEmail(String email);
}
MemberDTO.java
package jdbc_concept5.DTO;
public class MemberDTO implements IDTO {
private int num;
private String id;
private String pw;
private String name;
private String email;
@Override
public int getNum() {
return num;
}
@Override
public void setNum(int num) {
this.num = num;
}
@Override
public String getId() {
return id;
}
@Override
public void setId(String id) {
this.id = id;
}
@Override
public String getPw() {
return pw;
}
@Override
public void setPw(String pw) {
this.pw = pw;
}
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public String getEmail() {
return email;
}
@Override
public void setEmail(String email) {
this.email = email;
}
}
인터페이스 - IView.java
package jdbc_concept5.view;
public interface IView {
public void mainMenu() ;
public void deleteMember();
public void updateMember();
public void insertMember();
public void selectId();
public void selectAll();
}
MemberView.java
package jdbc_concept5.view;
import java.util.ArrayList;
import java.util.Scanner;
import jdbc_concept5.DAO.MemberDAO;
import jdbc_concept5.DTO.MemberDTO;
public class MemberView implements IView{
private static Scanner in = new Scanner(System.in);
private static MemberDAO service = new MemberDAO();
@Override
public void mainMenu() {
while(true) {
System.out.println("1. 회원 전체 정보 출력");
System.out.println("2. 회원 정보 조회");
System.out.println("3. 회원 정보 입력");
System.out.println("4. 회원 정보 변경");
System.out.println("5. 회원 정보 삭제");
System.out.println("0. 프로그램 종료");
System.out.print("선택 > ");
int select;
try {
select = Integer.parseInt(in.next());
} catch (Exception e) {
continue;
}
switch (select) {
case 0 :
disconnection();
System.out.println("프로그램을 종료합니다.");
System.exit(0);
case 1 :
selectAll();
break;
case 2 :
selectId();
break;
case 3 :
insertMember();
break;
case 4 :
updateMember();
break;
case 5 :
deleteMember();
break;
default:
System.out.println("메뉴 확인 후 다시 입력하세요.");
}
}
}
private static void disconnection() {
service.disconnection();
}
@Override
public void deleteMember() {
System.out.println("=== 회원 정보 삭제 ===");
System.out.print("아이디 : ");
String id = in.next();
int count = service.isExists(id);
if(count == 0) {
System.out.println(id + "는/은 등록된 정보가 아닙니다.");
return;
}
int rowCount = service.deleteMember(id);
if(rowCount == 1)
System.out.println(id + "님의 정보가 삭제되었습니다.");
}
@Override
public void updateMember() {
System.out.println("=== 회원 정보 변경 ===");
System.out.print("아이디 : ");
String id = in.next();
int count = service.isExists(id);
if(count == 0) {
System.out.println(id + "는/은 등록된 정보가 아닙니다.");
return;
}
System.out.print("패스워드 : ");
String pw = in.next();
System.out.print("이름 : ");
String name = in.next();
System.out.print("이메일 : ");
String email = in.next();
MemberDTO member = new MemberDTO();
member.setPw(pw);
member.setName(name);
member.setEmail(email);
service.updateMember(member);
System.out.println(id + "님의 정보가 수정되었습니다.");
}
@Override
public void insertMember() {
MemberDTO member = new MemberDTO();
System.out.println("=== 회원 정보 입력 ===");
System.out.print("아이디 : ");
member.setId(in.next());
int count = service.isExists(member.getId());
if(count == 0) {
System.out.print("번호 : "); member.setNum(in.nextInt());
System.out.print("패스워드 : "); member.setPw(in.next());
System.out.print("이름 : "); member.setName(in.next());
System.out.print("이메일 : "); member.setEmail(in.next());
service.insertMember(member);
}else
System.out.println(member.getId() + "는/은 이미 등록된 아이디입니다.");
}
@Override
public void selectId() {
System.out.println("=== 회원 정보 조회 ===");
System.out.print("아이디 : ");
String id = in.next();
int count = service.isExists(id);
if(count == 0) {
System.out.println(id + "는/은 등록된 정보가 없습니다.");
} else {
MemberDTO selectData = service.selectId(id);
System.out.println("번호 : " + selectData.getNum());
System.out.println("아이디 : " + selectData.getId());
System.out.println("패스워드 : " + selectData.getPw());
System.out.println("이름 : " + selectData.getName());
System.out.println("이메일 : " + selectData.getEmail());
}
System.out.println();
}
@Override
public void selectAll() {
ArrayList<MemberDTO> members = service.selectAll();
if(members.isEmpty() == true) {
System.out.println("등록 후 이용해주시길 바랍니다.");
}else {
for(MemberDTO m : members) {
System.out.println("번호 : " + m.getNum());
System.out.println("아이디 : " + m.getId());
System.out.println("패스워드 : " + m.getPw());
System.out.println("이름 : " + m.getName());
System.out.println("이메일 : " + m.getEmail());
System.out.println();
}
}
}
}
Main.java
package jdbc_concept5.run;
import jdbc_concept5.view.MemberView;
public class Main {
public static void main(String[] args) {
MemberView mv = new MemberView();
mv.mainMenu();
}
}
'3층 1구역 - 개발의 장 > Oracle DataBase' 카테고리의 다른 글
DB - 회원관리 프로그램 View 부분 상세설명(2022-08-09) (0) | 2022.08.09 |
---|---|
DB - 회원관리 프로그램 DAO 부분 상세설명(2022-08-09) (0) | 2022.08.09 |
DB - DB, 이클립스 연동 후 회원정보 프로그램 구축하는 퀴즈 03 (2022-08-08) (0) | 2022.08.08 |
DB - DB, 이클립스 연동 후 회원정보 프로그램 구축하는 퀴즈 02 (2022-08-08) (0) | 2022.08.08 |
DB - DB, 이클립스 연동 후 회원정보 프로그램 구축하는 퀴즈 (2022-08-07) (0) | 2022.08.07 |