[Java] 1차 프로젝트(회원가입)
siksin이라는 맛집검색 홈페이지를 벤치마킹
MVC모델로 개발을 하였음.
데이터베이스와 자바의 연동
action - Action
package min.java.Siksin.action;
import java.util.Scanner;
public interface SiksinMemberAction {
public void execute(Scanner scanner);
}
service - Service
package min.java.Siksin.service;
import java.util.ArrayList;
import min.java.Siksin.DTO.SiksinMemberDTO;
public interface SiksinMemberService {
public ArrayList<SiksinMemberDTO> SiksinMemberSelectAll();
public void SiksinMemberInsert(SiksinMemberDTO siksinMemberDTO);
public SiksinMemberDTO SiksinMemberUpdate(String memberEmail, String password, String nickName, String phoneNum, String memberArea);
public SiksinMemberDTO SiksinMemberDelete(String memberEmail);
public SiksinMemberDTO SiksinMemberSelectD(String memberEmail);
public SiksinMemberDTO memberEmailcheck(String memberEmail);
}
DTO
package min.java.Siksin.DTO;
public class SiksinMemberDTO {
private int memberNum;
private String memberEmail;
private String password;
private String nickName;
private String memberBirth;
private String gender;
private String phoneNum;
private String memberArea;
public int getMemberNum() {
// System.out.println("DTO- getMemberNum");
return memberNum;
}
public void setMemberNum(int memberNum) {
// System.out.println("DTO- setMemberNum");
this.memberNum = memberNum;
}
public String getMemberEmail() {
// System.out.println("DTO- getEmail");
return memberEmail;
}
public void setMemberEmail(String memberEmail) {
// System.out.println("DTO- setEmail");
this.memberEmail = memberEmail;
}
public String getPassword() {
// System.out.println("DTO- getPassword");
return password;
}
public void setPassword(String password) {
// System.out.println("DTO- setPassword");
this.password = password;
}
public String getNickName() {
// System.out.println("DTO에서 값 확인get"+nickName);
return nickName;
}
public void setNickName(String nickName) {
// System.out.println("DTO에서 값 확인set"+nickName);
this.nickName = nickName;
}
public String getMemberBirth() {
return memberBirth;
}
public void setMemberBirth(String memberBirth) {
this.memberBirth = memberBirth;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getPhoneNum() {
return phoneNum;
}
public void setPhoneNum(String phoneNum) {
this.phoneNum = phoneNum;
}
public String getMemberArea() {
return memberArea;
}
public void setMemberArea(String memberArea) {
this.memberArea = memberArea;
}
@Override
public String toString() {
return "SiksinMemberDTO [memberNum=" + memberNum + ", memberEmail=" + memberEmail + ", password=" + password
+ ", nickName=" + nickName + ", memberBirth=" + memberBirth + ", gender=" + gender + ", phoneNum="
+ phoneNum + ", memberArea=" + memberArea + "]";
}
}
DAO
package min.java.Siksin.DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import min.java.Siksin.DTO.SiksinMemberDTO;
import min.java.Siksin.dbcp.SiksinContext;
import min.java.Siksin.service.SiksinMemberService;
public class SiksinMemberDAO implements SiksinMemberService {
private static final Log log = LogFactory.getLog(SiksinMemberDAO.class);
@Override
public ArrayList<SiksinMemberDTO> SiksinMemberSelectAll() {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
ArrayList<SiksinMemberDTO> arrayList = new ArrayList<SiksinMemberDTO>();
try {
SiksinContext siksinContext = new SiksinContext();
DataSource dataSource = siksinContext.basicDataSource;
connection = dataSource.getConnection();
String sql = "select memberNum, memberEmail, password, nickName, to_char(memberBirth, 'yyyy-mm-dd')memberBirth , gender, phoneNum, memberArea from siksinMember ";
/* to_char(memberBirth, 'yyyy-mm-dd')memberBirth(뒤에잇는 맴버벌스는 별칭을 의미함) */
log.info("DAO_SelectAll_SQL - " + sql);
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery(); // PreparedStatement 개체에서 SQL 쿼리를 실행하고 쿼리에 의해 생성된 ResultSet 개체를 반환합니다.
// 커서를 현재 위치에서 한 행 앞으로 이동하면서 반복한다.
while (resultSet.next()) {
SiksinMemberDTO siksinMemberDTO = new SiksinMemberDTO();
siksinMemberDTO.setMemberNum(resultSet.getInt("memberNum"));
siksinMemberDTO.setMemberEmail(resultSet.getString("memberEmail"));
log.info("DAO_SelectAll회원 이메일 확인" + resultSet.getString("memberEmail"));
siksinMemberDTO.setPassword(resultSet.getString("password"));
siksinMemberDTO.setNickName(resultSet.getString("nickName"));
siksinMemberDTO.setMemberBirth(resultSet.getString("memberBirth"));
siksinMemberDTO.setGender(resultSet.getString("gender"));
siksinMemberDTO.setPhoneNum(resultSet.getString("phoneNum"));
siksinMemberDTO.setMemberArea(resultSet.getString("memberArea"));
arrayList.add(siksinMemberDTO);// 내가 디티오에서 호출해서 값을 저장한걸 어레이리스트에 저장한다.
log.info("DAO_SelectAll 조회 데이터 확인 - " + siksinMemberDTO);
}
resultSet.getRow();
if (resultSet.getRow() == 0) {
log.info("DAO_SelectAll등록한 회원이 없습니다.");
}
} catch (Exception e) {
log.info("DAO_SelectAll전체조회 실패 (예외확인) - " + e);
} finally {
try {
resultSet.close();
preparedStatement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return arrayList;
}
@Override
public void SiksinMemberInsert(SiksinMemberDTO siksinMemberDTO) {
Connection connection = null;
PreparedStatement preparedStatement = null;
// 내가 DTO로 바로 매개변수로 받았기 때문에 DTO로 저장하는 이코드는 필요가 없어
// SiksinMemberDTO siksinMemberDTO = new SiksinMemberDTO();
// siksinMemberDTO.setMemberNum(memberNum);
// siksinMemberDTO.setMemberEmail(memberEmail);
// siksinMemberDTO.setPassword(password);
// siksinMemberDTO.setNickName(nickName);
// siksinMemberDTO.setMemberBirth(memberBirth);
// siksinMemberDTO.setGender(gender);
// siksinMemberDTO.setPhoneNum(phoneNum);
// siksinMemberDTO.setMemberArea(memberArea);
try {
// System.out.println("DAO-inser");
// 내가 만든 연결 클래스를 인스턴스화해야함
SiksinContext siksinContext = new SiksinContext();
DataSource dataSource = siksinContext.basicDataSource;
connection = dataSource.getConnection();
String sql = "insert into siksinMember(memberNum, memberEmail, password, nickName, memberBirth, gender, phoneNum, memberArea) ";
sql += " values(board_seq.nextval, ?, ?, ?, ?, ?, ?, ?) ";
log.info("DAO_inser_SQL - " + sql);
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, siksinMemberDTO.getMemberEmail());
preparedStatement.setString(2, siksinMemberDTO.getPassword());
preparedStatement.setString(3, siksinMemberDTO.getNickName());
preparedStatement.setString(4, siksinMemberDTO.getMemberBirth());
preparedStatement.setString(5, siksinMemberDTO.getGender());
preparedStatement.setString(6, siksinMemberDTO.getPhoneNum());
preparedStatement.setString(7, siksinMemberDTO.getMemberArea());
int count = preparedStatement.executeUpdate();
log.info("DAO_inser_입력 데이터 확인 - " + siksinMemberDTO);
if (count > 0) {
connection.commit();
log.info("DAO_inser_커밋되었습니다.");
} else {
connection.rollback();
log.info("DAO_inser_롤백되었습니다.");
}
} catch (SQLException e) {
log.info("DAO_inser_회원 입력 실패 - " + e);
} finally {
try {
preparedStatement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
@Override
public SiksinMemberDTO SiksinMemberUpdate(String memberEmail, String password, String nickName, String phoneNum,
String memberArea) {
Connection connection = null;
PreparedStatement preparedStatement = null;
// 여기는 매개변수를 각각 받았기 때문에 이걸 써줘야해
SiksinMemberDTO siksinMemberDTO = new SiksinMemberDTO();
siksinMemberDTO.setMemberEmail(memberEmail);
siksinMemberDTO.setPassword(password);
siksinMemberDTO.setNickName(nickName);
siksinMemberDTO.setPhoneNum(phoneNum);
siksinMemberDTO.setMemberArea(memberArea);
try {
SiksinContext siksinContext = new SiksinContext(); // 내가 만든 연결 클래스를 인스턴스화해야함
DataSource dataSource = siksinContext.basicDataSource;
connection = dataSource.getConnection();
String sql = "update siksinMember set password = ? , nickName = ?, phoneNum = ? , memberArea = ? where memberEmail = ?";
log.info("DAO_Update_SQL - " + sql);
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, siksinMemberDTO.getPassword());
preparedStatement.setString(2, siksinMemberDTO.getNickName());
preparedStatement.setString(3, siksinMemberDTO.getPhoneNum());
preparedStatement.setString(4, siksinMemberDTO.getMemberArea());
preparedStatement.setString(5, siksinMemberDTO.getMemberEmail());
int count = preparedStatement.executeUpdate();
log.info("DAO_Update_수정데이터 확인 - " + siksinMemberDTO);
if (count > 0) {
connection.commit();
log.info("DAO_Update_커밋되었습니다.");
} else {
connection.rollback();
log.info("DAO_Update_롤백되었습니다.");
}
} catch (Exception e) {
log.info("DAO_Update_회원수정 실패 - " + e);
} finally {
try {
preparedStatement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return siksinMemberDTO;
}
@Override
public SiksinMemberDTO SiksinMemberDelete(String memberEmail) {
Connection connection = null;
PreparedStatement preparedStatement = null;
SiksinMemberDTO siksinMemberDTO = new SiksinMemberDTO();
siksinMemberDTO.setMemberEmail(memberEmail);
try {
SiksinContext siksinContext = new SiksinContext(); // 내가 만든 연결 클래스를 인스턴스화해야함
DataSource dataSource = siksinContext.basicDataSource;
connection = dataSource.getConnection();
String sql = "delete from siksinMember where memberEmail = ? ";
log.info("DAO_Delete_SQL - " + sql);
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, siksinMemberDTO.getMemberEmail());
int count = preparedStatement.executeUpdate();// insert, update, delete 에서 preparedStatement 객체에서 sql문을 싱행합니다.
if (count > 0) {
connection.commit();
log.info("DAO_Delete_커밋되었습니다.");
} else {
connection.rollback();
log.info("DAO_Delete_롤백되었습니다.");
}
} catch (SQLException e) {
log.info("DAO_Delete_회원 삭제 실패 - " + e);
} finally {
try {
preparedStatement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return siksinMemberDTO;
}
@Override
public SiksinMemberDTO SiksinMemberSelectD(String memberEmail) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
SiksinMemberDTO siksinMemberDTO = new SiksinMemberDTO();
try {
SiksinContext siksinContext = new SiksinContext(); // 내가 만든 연결 클래스를 인스턴스화해야함
DataSource dataSource = siksinContext.basicDataSource;
connection = dataSource.getConnection();
String sql = "select memberNum, memberEmail, password, nickName, to_char(memberBirth, 'yyyy-mm-dd')memberBirth, gender, phoneNum, memberArea from siksinMember ";
sql += " where memberEmail = ? ";
log.info("DAO_SelectD_SQL - " + sql);
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, memberEmail);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
siksinMemberDTO.setMemberNum(resultSet.getInt("memberNum"));
siksinMemberDTO.setMemberEmail(resultSet.getString("memberEmail"));
siksinMemberDTO.setPassword(resultSet.getString("password"));
siksinMemberDTO.setNickName(resultSet.getString("nickName"));
siksinMemberDTO.setMemberBirth(resultSet.getString("memberBirth"));
siksinMemberDTO.setGender(resultSet.getString("gender"));
siksinMemberDTO.setPhoneNum(resultSet.getString("phoneNum"));
siksinMemberDTO.setMemberArea(resultSet.getString("memberArea"));
}
} catch (SQLException e) {
log.info("DAO_SelectD_개별 회원 조회 실패 - " + e);
} finally {
try {
resultSet.close();
preparedStatement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return siksinMemberDTO;
}
@Override
public SiksinMemberDTO memberEmailcheck(String memberEmail) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
SiksinMemberDTO siksinMemberDTO = new SiksinMemberDTO();
try {
SiksinContext siksinContext = new SiksinContext(); // 내가 만든 연결 클래스를 인스턴스화해야함
DataSource dataSource = siksinContext.basicDataSource;
connection = dataSource.getConnection();
String sql = "select * from siksinMember where memberEmail = ?";
log.info("DAO_Emailcheck_SQL - " + sql);
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, memberEmail);
resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
if (resultSet.getString("memberEmail").equals(memberEmail)) {
siksinMemberDTO.setMemberEmail(resultSet.getString("memberEmail"));
log.info("DAO_Emailcheck_이메일 확인 - " + resultSet.getString("memberEmail"));
}
}
} catch (Exception e) {
log.info("DAO_Emailcheck_회원 아이디 체크 실패 - " + e);
} finally {
try {
resultSet.close();
preparedStatement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return siksinMemberDTO;
}
}
dbcp - Context
package min.java.Siksin.dbcp;
import org.apache.commons.dbcp2.BasicDataSource;
public class SiksinContext {
public BasicDataSource basicDataSource;
public SiksinContext() {
// System.out.println("context 동작");
basicDataSource = new BasicDataSource();
basicDataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
basicDataSource.setUrl("jdbc:oracle:thin:@URL주소:1521:xe");
basicDataSource.setUsername("계정명");
basicDataSource.setPassword("비밀번호");
basicDataSource.setInitialSize(4);
basicDataSource.setMaxIdle(1000);
basicDataSource.setMinIdle(5);
}
}
control-Select
package min.java.Siksin.member.control;
import java.util.ArrayList;
import java.util.Scanner;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import min.java.Siksin.DAO.SiksinMemberDAO;
import min.java.Siksin.DTO.SiksinMemberDTO;
import min.java.Siksin.action.SiksinMemberAction;
public class SiksinMemberSelect implements SiksinMemberAction {
private static final Log log = LogFactory.getLog(SiksinMemberSelect.class);
@Override
public void execute(Scanner scanner) {
System.out.println("------ ◆ 회원조회를 선택하였습니다.◆ ------");
System.out.println("[1] 회원조회 | [2] 회원상세조회");
System.out.print("◆ 원하는 번호를 입력하세요 : ");
int choice = scanner.nextInt();
if (choice == 1) {
ArrayList<SiksinMemberDTO> arrayList = new ArrayList<SiksinMemberDTO>();
SiksinMemberDAO siksinMemberDAO = new SiksinMemberDAO();
arrayList = siksinMemberDAO.SiksinMemberSelectAll();
log.info("Select데이터 확인 - " + arrayList);
System.out.println("[회원정보]");
for (SiksinMemberDTO siksinMemberDTO : arrayList) {
int memberNum = siksinMemberDTO.getMemberNum();
String memberEmail = siksinMemberDTO.getMemberEmail();
String nickName = siksinMemberDTO.getNickName();
String gender = siksinMemberDTO.getGender();
System.out.println(
memberNum + "번" + " | 이메일: " + memberEmail + " | 닉네임: " + nickName + " | 성별: " + gender);
}
} else if (choice == 2) {
SiksinMemberSelectDetail siksinMemberSelectDetail = new SiksinMemberSelectDetail();
siksinMemberSelectDetail.execute(scanner);
} else {
System.out.println("번호를 다시 입력하세요");
SiksinMemberSelect siksinMemberSelect = new SiksinMemberSelect();
siksinMemberSelect.execute(scanner);
}
}
}
control-Insert
package min.java.Siksin.member.control;
import java.util.ArrayList;
import java.util.Scanner;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import min.java.Siksin.DAO.SiksinMemberDAO;
import min.java.Siksin.DTO.SiksinMemberDTO;
import min.java.Siksin.action.SiksinMemberAction;
public class SiksinMemberInsert implements SiksinMemberAction {
private static final Log log = LogFactory.getLog(SiksinMemberInsert.class);
@Override
public void execute(Scanner scanner) {
System.out.println();
System.out.println("------ ◆ 회원가입을 선택하였습니다.◆ ------");
SiksinMemberDAO siksinMemberDAO = new SiksinMemberDAO();
ArrayList<SiksinMemberDTO> arrayList = new ArrayList<SiksinMemberDTO>();
// 테이블 입력값 조회
arrayList = siksinMemberDAO.SiksinMemberSelectAll();
System.out.println();
System.out.println("회원정보를 입력하세요");
log.info("Insert데이터확인 - " + arrayList);
if (arrayList.size() >= 0) {
SiksinMemberDTO siksinMemberDTO = new SiksinMemberDTO();
System.out.print("이메일: ");
String memberEmail = scanner.next();
siksinMemberDTO = siksinMemberDAO.memberEmailcheck(memberEmail);
System.out.println();
if (siksinMemberDTO.getMemberEmail() == null) {
System.out.println("중복된 이메일이 없습니다.");
siksinMemberDTO = new SiksinMemberDTO();
System.out.print("비밀번호: ");
String password = scanner.next();
System.out.print("닉네임: ");
String nickName = scanner.next();
System.out.print("생년월일: ");
String memberBirth = scanner.next();
System.out.print("성별(남=m, 여=f): ");
String gender = scanner.next();
System.out.print("핸드폰번호: ");
String phoneNum = scanner.next();
System.out.print("생활지역: ");
String memberArea = scanner.next();
// 자동으로 숫자 저장되게 SQL적어서 안써줘도 됨
// siksinMemberDTO.setMemberNum(memberNum);
// 입력받은값을 DTO로 저장한다
siksinMemberDTO.setMemberEmail(memberEmail);
siksinMemberDTO.setPassword(password);
siksinMemberDTO.setNickName(nickName);
siksinMemberDTO.setMemberBirth(memberBirth);
siksinMemberDTO.setGender(gender);
siksinMemberDTO.setPhoneNum(phoneNum);
siksinMemberDTO.setMemberArea(memberArea);// 저장하면서 디티오로 넘어갓따가
//위에서 저장한 DTO값을 DAO의 인설트매서드로 보내준다.
siksinMemberDAO.SiksinMemberInsert(siksinMemberDTO);
System.out.println("'" + nickName + "'" + " 님 회원가입이 완료되었습니다.");
log.info("Insert회원입력 siksinMemberDTO - " + siksinMemberDTO); // 여기서 저장된 데이터 확인을 위해 get으로 불러와서 확인한다.
return;
} else {
System.out.println("중복된 이메일이 있습니다. 다시 입력하세요.");
log.info("Insert중복 아이디 확인 - " +siksinMemberDTO.getMemberEmail().equals(memberEmail));
System.out.println();
}
}
}
}
control-Update
package min.java.Siksin.member.control;
import java.util.ArrayList;
import java.util.Scanner;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import min.java.Siksin.DAO.SiksinMemberDAO;
import min.java.Siksin.DTO.SiksinMemberDTO;
import min.java.Siksin.action.SiksinMemberAction;
public class SiksinMemberUpdate implements SiksinMemberAction {
private static final Log log = LogFactory.getLog(SiksinMemberUpdate.class);
@Override
public void execute(Scanner scanner) {
System.out.println();
System.out.println("------ ◆ 회원정보 수정을 선택하였습니다.◆ ------");
SiksinMemberDAO siksinMemberDAO = new SiksinMemberDAO();
ArrayList<SiksinMemberDTO> arrayList = new ArrayList<SiksinMemberDTO>();
arrayList = siksinMemberDAO.SiksinMemberSelectAll();
System.out.println("회원정보를 수정하세요");
for (SiksinMemberDTO siksinMemberDTO : arrayList) {
System.out.print("회원 이메일: ");
String memberEmail = scanner.next();
siksinMemberDTO = siksinMemberDAO.memberEmailcheck(memberEmail);
System.out.println(siksinMemberDTO);
System.out.println();
if (siksinMemberDTO.getMemberEmail() == null) {
System.out.println("이메일이 없습니다. 다시 입력하세요.");
} else {
log.info("Update이메일 확인 - " + siksinMemberDTO.getMemberEmail().equals(memberEmail));
System.out.println();
System.out.println("이메일이 있습니다. 회원정보수정을 진행해주세요.");
siksinMemberDTO = siksinMemberDAO.SiksinMemberSelectD(memberEmail);
log.info("Update회원정보siksinMemberDTO" + siksinMemberDTO);
System.out.println("[회원정보 수정]");
System.out.println("비밀번호: " + siksinMemberDTO.getPassword());
System.out.print("수정할 비밀번호: ");
String password = scanner.next();
System.out.println("닉네임: " + siksinMemberDTO.getNickName());
System.out.print("수정할 닉네임: ");
String nickName = scanner.next();
System.out.println("핸드폰번호: " + siksinMemberDTO.getPhoneNum());
System.out.print("수정할 핸드폰번호: ");
String phoneNum = scanner.next();
System.out.println("생활지역:" + siksinMemberDTO.getMemberArea());
System.out.print("수정할 생활지역: ");
String memberArea = scanner.next();
siksinMemberDTO.setMemberEmail(memberEmail);
siksinMemberDTO.setPassword(password);
siksinMemberDTO.setNickName(nickName);
siksinMemberDTO.setPhoneNum(phoneNum);
siksinMemberDTO.setMemberArea(memberArea);
// System.out.println(siksinMemberDTO);
siksinMemberDAO.SiksinMemberUpdate(memberEmail, password, nickName, phoneNum, memberArea);
System.out.println(nickName + " 님의 회원정보가 수정되었습니다.");
log.info("Update회원수정siksinMemberDTO " + siksinMemberDTO);
break;
}
}
}
}
control-Delete
package min.java.Siksin.member.control;
import java.util.ArrayList;
import java.util.Scanner;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import min.java.Siksin.DAO.SiksinMemberDAO;
import min.java.Siksin.DTO.SiksinMemberDTO;
import min.java.Siksin.action.SiksinMemberAction;
public class SiksinMemberDelete implements SiksinMemberAction {
private static final Log log = LogFactory.getLog(SiksinMemberDelete.class);
@Override
public void execute(Scanner scanner) {
System.out.println();
System.out.println("------ ◆ 회원정보 삭제을 선택하였습니다.◆ ------");
SiksinMemberDAO siksinMemberDAO = new SiksinMemberDAO();
ArrayList<SiksinMemberDTO> arrayList = new ArrayList<SiksinMemberDTO>();
arrayList = siksinMemberDAO.SiksinMemberSelectAll();
System.out.println("삭제할 이메일을 입력해주세요.");
for (SiksinMemberDTO siksinMemberDTO : arrayList) {
System.out.print("회원 이메일: ");
String memberEmail = scanner.next();
siksinMemberDTO = siksinMemberDAO.memberEmailcheck(memberEmail);
if (siksinMemberDTO.getMemberEmail() == null) {
System.out.println("삭제할 회원이 없습니다.");
} else {
log.info("Delete아이디 확인 - " + siksinMemberDTO.getMemberEmail().equals(memberEmail));
System.out.println("삭제할 회원이 있습니다.");
System.out.print("회원에서 탈퇴하시겠습니까(y/n) : ");
String choice = scanner.next();
switch (choice) {
case "y":
siksinMemberDAO.SiksinMemberDelete(memberEmail);
System.out.println("회원정보가 삭제되었습니다.");
break;
case "n":
System.out.println("내용을 취소합니다.");
break;
default:
System.out.println("잘못입력하였습니다.");
break;
}
}
break;
}
}
}
control-SelectDetail
package min.java.Siksin.member.control;
import java.util.Scanner;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import min.java.Siksin.DAO.SiksinMemberDAO;
import min.java.Siksin.DTO.SiksinMemberDTO;
import min.java.Siksin.action.SiksinMemberAction;
public class SiksinMemberSelectDetail implements SiksinMemberAction {
private static final Log log = LogFactory.getLog(SiksinMemberSelectDetail.class);
@Override
public void execute(Scanner scanner) {
do {
SiksinMemberDTO siksinMemberDTO = new SiksinMemberDTO();
SiksinMemberDAO siksinMemberDAO = new SiksinMemberDAO();
System.out.println("------ ◆ 회원정보 상세보기를 선택하였습니다.◆ ------");
System.out.print("회원 이메일: ");
String memberEmail = scanner.next();
siksinMemberDTO = siksinMemberDAO.SiksinMemberSelectD(memberEmail);
int memberNum = siksinMemberDTO.getMemberNum();
memberEmail = siksinMemberDTO.getMemberEmail();
String password = siksinMemberDTO.getPassword();
String nickName = siksinMemberDTO.getNickName();
String memberBirth = siksinMemberDTO.getMemberBirth();
String gender = siksinMemberDTO.getGender();
String phoneNum = siksinMemberDTO.getPhoneNum();
String memberArea = siksinMemberDTO.getMemberArea();
if (siksinMemberDTO.getMemberEmail() == null) {
System.out.println();
System.out.println("존재하는 회원이 없습니다.");
} else {
log.info("SelectDetail아이디 확인 - " + siksinMemberDTO.getMemberEmail().equals(memberEmail));
System.out.println("---------------------------");
System.out.println("회원번호 : " + memberNum);
System.out.println("이메일 : " + memberEmail);
System.out.println("비밀번호 : " + password);
System.out.println("닉네임 : " + nickName);
System.out.println("생년월일 : " + memberBirth);
System.out.println("성별 : " + gender);
System.out.println("핸드폰번호 : " + phoneNum);
System.out.println("생활지역 : " + memberArea);
System.out.println("---------------------------");
return;
}
} while (true);
}
}
view-Main
package min.java.Siksin.view;
import java.util.Scanner;
import min.java.Siksin.member.control.SiksinMemberDelete;
import min.java.Siksin.member.control.SiksinMemberInsert;
import min.java.Siksin.member.control.SiksinMemberSelect;
import min.java.Siksin.member.control.SiksinMemberUpdate;
public class SiksinMemberMain {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
do {
System.out.println();
System.out.println(
"------------------------------------------ <식신> ------------------------------------------");
System.out.println(
"------------------------------------ 대한민국 NO.1 맛집 서비스 -----------------------------------");
System.out.println("[회원정보]");
System.out.println("[1] 회원조회 | [2] 회원가입 | [3] 회원수정 | [4] 회원정보삭제 | [5] 회원정보 페이지 종료");
System.out.print("◆ 원하는 번호를 입력하세요 : ");
String choice = scanner.next();
switch (choice) {
case "1":
SiksinMemberSelect siksinMemberSelect = new SiksinMemberSelect();
siksinMemberSelect.execute(scanner);
break;
case "2":
SiksinMemberInsert siksinMemberInsert = new SiksinMemberInsert();
siksinMemberInsert.execute(scanner);
break;
case "3":
SiksinMemberUpdate siksinMemberUpdate = new SiksinMemberUpdate();
siksinMemberUpdate.execute(scanner);
break;
case "4":
SiksinMemberDelete siksinMemberDelete = new SiksinMemberDelete();
siksinMemberDelete.execute(scanner);
break;
case "5":
System.out.println("프로그램을 종료합니다.");
System.exit(0);
default:
break;
}
} while (true);
}
}
dbconnection - ConnectionDB
package min.java.Siksin.dbconnection.test;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import min.java.Siksin.dbcp.SiksinContext;
public class SiksinConnectionDB {
private static final Log log = LogFactory.getLog(SiksinConnectionDB.class);
public static void main(String[] args) {
Connection connection = null;
try {
SiksinContext siksinContext = new SiksinContext();
DataSource dataSource = siksinContext.basicDataSource;
connection = dataSource.getConnection();
log.info("ConnectionDB데이터베이스 연결 - " + connection);
} catch (SQLException e) {
log.info("ConnectionDB데이터베이스 연결 실패 - " + e);
} finally {
try {
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
댓글남기기