PROJECT
Project(3)-3. 수정
삼색이삼랑해
2022. 10. 14. 16:36
Controller
private void UpdateData() {
String mid = userData.getM_id();
MemberDto data = dDao.selectId(mid);
dView.outMember(data);
if(data != null) {
dView.updateMember(data);
String msg = dServ.updateResult(data);
dView.printMsg(msg);
}
}
현재 로그인 된 id를 가져와 해당 id가 가진 정보들을 모두 data에 담을 수 있도록 해준다.
만약 id가 없으면 View의 outMember()를 실행, 있으면 updateResult()를 실행한다.
View
- id가 있을 경우
public void updateMember(MemberDto data) {
subTitle("Update Data");
//변경을 하는 값만 받아서 저장.
String pwd, name, phone, birth;
pwd = ioc.inStr("PWD : ");
if(!pwd.equals("")) { // 변경할 값을 입력한 상태
data.setM_pwd(pwd);
}
name = ioc.inStr("NAME : ");
if(!name.equals("")) {
data.setM_name(name);
}
phone = ioc.inStr("PHONE : ");
if(!phone.equals("")) {
data.setM_phone(phone);
}
birth = ioc.inStr("BIRTH(yyyy-mm-dd) : ");
if(!birth.equals("")) {
data.setM_birth(birth);
}
}
- id가 없을 경우
public void outMember(MemberDto data) {
ioc.twoPrint("------------------");
if(data == null){
printMsg("No Data.");
return;
}
ioc.onePrint(data.toString());
ioc.twoPrint("------------------");
}
Dao
- 현재 로그인된 id의 정보 가져오기
public MemberDto selectId(String mid) {
MemberDto data = null;
String query = "SELECT * FROM membertbl WHERE m_id = ?";
try {
conn = DriverManager.getConnection(url,user,pass);
pstmt = conn.prepareStatement(query);
pstmt.setString(1, mid);
rs = pstmt.executeQuery();
if(rs.next()){
data = new MemberDto();
data.setM_id(rs.getString(1));
data.setM_pwd(rs.getString(2));
data.setM_name(rs.getString(3));
data.setM_phone(rs.getString(4));
data.setM_birth(rs.getString(5));
}
} catch (SQLException e) {
//e.printStackTrace();
data = null;
} finally {
close();
}
return data;
}
- id를 제외한 수정된 정보 DB 저장
public int updateMember(MemberDto data) {
int result = 0;
String query = "UPDATE membertbl SET m_pwd = ?, m_name = ?, m_phone = ?, m_birth = ? "
+ "WHERE m_id = ?";
try {
conn = DriverManager.getConnection(url, user, pass);
pstmt = conn.prepareStatement(query);
pstmt.setString(1, data.getM_pwd());
pstmt.setString(2, data.getM_name());
pstmt.setString(3, data.getM_phone());
pstmt.setDate(4, Date.valueOf(data.getM_birth()));
pstmt.setString(5, data.getM_id());
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
result = 0;
} finally {
close();
}
return result;
}
수정한 값이 DB에 반영되면 res = 0, 반영되지 않으면 1이 된다.
Service
public String updateResult(MemberDto data) {
String msg;
int res = dDao.updateMember(data);
if(res > 0){
msg = "Update Success.";
}
else {
msg = "Update Failed.";
}
return msg;
}