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>