Spring Boot
[MyBatis] User CRUD 구현하기 - C (Create)
어코링
2024. 5. 26. 20:01
Spring legacy
Mybatis
Oracle
스터디 프로젝트 진행중
CRUD 다시 차근차근 공부하기
C (Create) - 회원가입
📌 UserVo
import java.io.Serializable;
import lombok.Data;
@Data
public class EseUserVo implements Serializable {
private static final long serialVersionUID = 3337545320035130909L;
private Integer registNo;
private String userId;
private String userPw;
private String tmprPwNo; // 임시비밀번호
private String userNm;
private String userEmail;
private String userPhone;
private String userZipCode;
private String userFirstAddr; // 기본주소
private String userSecondAddr; // 상세주소
private String userLevel; // 권한수준
private String userDelYn;
private String userDelDe; // 삭제 날짜
private String regDe; // 사용자 등록일
private String pwChangeDt; // 비밀번호 변경일
private String pwFailCnt; // 비밀번호 입력 실패 횟수
private String lastContactFmtDt; // 사용자가 마지막으로 접속한 날짜 시간
private String enabled; // 계정 활성화 여부
private String ipAddr; // 사용자가 마지막으로 접속한 IP 주소
private String pwChgYn; // 비밀번호 변경 여부
private String idBlockYn; // 계정 잠금 여부
private String otpYn; // OTP 사용 여부
}
📌 UserContoller
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import co.kr.fourteen.ese.history.vo.EseHistoryVo;
import co.kr.fourteen.ese.user.service.EseUserService;
import co.kr.fourteen.ese.user.vo.EseUserVo;
import lombok.extern.slf4j.Slf4j;
@Controller
@Slf4j
@RequestMapping(value="/ese/user/")
public class EseUserController {
@Autowired
private EseUserService eseUserService;
/**
* @Method insertInfo
* @Date 2024. 05. 25.
* @Writter ese(어성은 )
* @EditHistory
* @Discript Seongeun Join 회원가입(C)
* @Return ModelAndView
*/
@RequestMapping(value="insertInfo", method = RequestMethod.POST) // 주소호출
public String insertInfo(@ModelAttribute EseUserVo info) {
log.info(info.toString());
eseUserService.insertInfo(info);
return "ese/user/login";
}
}
📌 UserServiceImpl
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import co.kr.fourteen.common.util.CustomException;
import co.kr.fourteen.ese.user.mapper.EseUserMapper;
import co.kr.fourteen.ese.user.service.EseUserService;
import co.kr.fourteen.ese.user.vo.EseUserVo;
@Service
public class EseUserServiceImpl implements EseUserService {
@Autowired
private EseUserMapper eseUserMapper;
@Override
public int insertInfo(EseUserVo info) {
int resultInt = eseUserMapper.insertInfo(info);
return resultInt;
}
}
📌 UserMapper
import java.util.List;
import co.kr.fourteen.common.annotation.OracleSqlMapperScan;
import co.kr.fourteen.ese.user.vo.EseUserVo;
@OracleSqlMapperScan
public interface EseUserMapper {
public int insertInfo(EseUserVo info);
}
📌 UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="EseUserMapper경로">
<insert id="insertInfo" parameterType="EseUserVo" useGeneratedKeys="true" keyProperty="idx">
INSERT INTO ESE_USER (
USER_ID
,USER_PW
,USER_NM
,USER_EMAIL
,USER_PHONE
,USER_ZIP_CODE
,USER_FIRST_ADDR
<if test="userSecondAddr != ''">,USER_SECOND_ADDR</if>
,USER_DEL_YN
,REG_DE
,ENABLED
) VALUES (
#{userId}
,#{userPw}
,#{userNm}
,#{userEmail}
,#{userPhone}
,#{userZipCode}
,#{userFirstAddr}
<if test="userSecondAddr != ''">,#{userSecondAddr}</if>
,'N'
,CURRENT_TIMESTAMP
,'A' <!-- A : 활성 / E : 비활 -->
)
</insert>
</mapper>


