CRUD란?
CRUD는 Create(생성), Read(읽기), Update(갱신), Delete(삭제)로 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능이다.
이름 |
조작 |
SQL |
Create |
생성 |
Insert |
Read |
읽기 |
Select |
Update |
갱신 |
Update |
Delete |
삭제 |
Delete |
Spring MVC에 Model 2 방식으로 적용하기
회원가입을 위해서 view에서 입력한 정보를 DB에 넣기 위해 Create를 해야한다.
DTO => maps => DAO => Service => Controller 순으로 만들도록 한다.
우선 DTO를 만든다.
UserDTO.java
package kr.co.jwo.user.dto;
import java.util.Date;
import lombok.Data; //getter setter toString 을 자동으로 만들어줌.
@Data
public class UserDTO {
private Integer userId = null, // 사용자ID
status = null; // STATUS(상태)
// 0 : 대기
// 3 : IP차단
// 4 : 탈퇴
// 5 : 정지
// 9 : 정상
private String loginId = null, // 로그인ID
loginPw = null, // 로그인PW
name = null, // 이름
phone = null, // 핸드폰
email = null, // 이메일
role = "USER"; // ROLE(롤)
// USER : 사용자
// MANAGER : 매니저
// ADMIN : 관리자
// SUPER_ADMIN : 최고 관리자
private Date regDt = null; // 등록일
}
그리고 mybatis로 xml을 만든다.
User.xml
<insert id="insertData" parameterType="kr.co.jwo.user.dto.UserDTO">
<selectKey keyProperty="userId" resultType="int" order="BEFORE">
SELECT SEQ_USER.NEXTVAL FROM DUAL
</selectKey>
INSERT INTO TB_USER(
USER_ID
,LOGIN_ID
,LOGIN_PW
,NAME
,PHONE
,EMAIL
)
VALUES
(
#{userId}
,#{loginId}
,#{loginPw}
,#{name}
,#{phone}
,#{email}
)
</insert>
DAO를 만든다.
IUserDAO.java
public interface IUserDAO {
public void insert(UserDTO userDTO);
}
UserDAOImpl.java
@Repository
public class UserDAOImpl extends BaseDaoSupport implements IUserDAO{
@Override
public void insert(UserDTO userDTO) {
SqlSession session = this.getSqlSession();
session.insert("user.insertData",userDTO);
}
}
여기서 BaseDaoSupport를 상속받는데 필요하다면 아래 파일 받은 다음 해당 패키지에 넣는다.
BaseDaoSupport.java
IUserService.java
public interface IUserService {
public void write(UserDTO userDTO);
}
UserServiceImpl.java
@Service
public class UserServiceImpl implements IUserService {
@Autowired
IUserDAO userDAO = null;
@Override
public void write(UserDTO userDTO) {
userDAO.insert(userDTO);
}
}
Controller를 만든다.
JoinController.java
// 회원가입
@ResponseBody
@RequestMapping(value = "/join.god", method = RequestMethod.POST)
public String dojoin(UserDTO userDTO) {
log.debug("userDTO =========>" + userDTO);
userService.write(userDTO);
return "s";
}
여기서 사용을 위해 validate js 파일을 받아야 한다.
Join.jsp
// 검증에 통과하면
if ($("#frmJoin").valid()) {
$.get("${_ctx}/captcha/isRight", {
captcha : $("#captcha").val()
}, function(data) {
if (data == 1) {
//서버에 데이터 전송
var url = "${_ctx}/join.god";
$.post(url, $("#frmJoin").serialize(), function(data) {
if (data == "s") {
alert("회원가입 성공");
document.location.href = "/jwo/index.god"
} else {
alert("회원가입 실패!!");
//화면 새로고침
document.location.reload();
}
});
} else {
alert("문자가 다릅니다.");
}
});
}