Fairy ' s
[Oracle DB] 게시판 / #3 서브 쿼리, MP_MEMBER 본문
#2 서브 테이블 MP_MEMBER에 사용한 query문 정리 (memberMapper.xml)
1. MP_MEMBER 테이블 생성
// MP_MEMBER
CREATE TABLE MP_MEMBER (
USERID VARCHAR2(40) NOT NULL, // 사용자 아이디
USERPASS VARCHAR(100) NOT NULL, // 사용자 비밀번호
USERNAME VARCHAR2(40) NOT NULL, // 사용자 이름
REGDATE DATE DEFAULT SYSDATE, // 생성 일자
PRIMARY KET(USERID) // 기본 키
);
2. 로그인 / 회원 가입
// memberMapper.xml
// 회원가입
<insert id="register">
INSERT INTO MP_MEMBER( USERID
, USERPASS
, USERNAME )
VALUES( #{userId}
, #{userPass}
, #{userName})
</insert>
// 로그인
<select id="login" resultType="kr.co.vo.MemberVO">
SELECT USERID, USERPASS, USERNAME
FROM MP_MEMBER
WHERE USERID = #{userId}
AND USERPASS = #{userPass}
</select>
3. 회원정보 수정 / 탈퇴
// memberMapper.xml
// 회원정보 수정
<update id="memberUpdate">
UPDATE MP_MEMBER SET
<!-- USERPASS = #{userPass} -->
USERNAME = #{userName}
WHERE USERID = #{userId}
</update>
// 회원 탈퇴
<delete id="memberDelete">
DELETE FROM MP_MEMBER
WHERE USERID = #{userId}
<!-- AND USERPASS = #{userPass} -->
</delete>
- 이름은 수정할 수 있지만, 비밀번호와 아이디는 수정할 수 없다.
- 비밀번호 수정이 불가한 이유는 비밀번호를 암호화 해뒀기 때문이다.
- 조만간 암호화된 비밀번호 수정과 비밀번호 찾기 기능도 제작해볼까 한다.
- 회원탈퇴 할 때 입력된 비밀번호와 암호화된 비밀번호를 비교해주기 때문에 조건에 있는 비밀번호를 주석처리 하였다.
4. 아이디 중복 체크, 비밀번호 체크
// memberMapper.xml
// 패스워드 체크
<select id="passChk" resultType="int">
SELECT COUNT(*) FROM MP_MEMBER
WHERE USERID = #{userId}
AND USERPASS = #{userPass}
</select>
// 아이디 중복 체크
<select id="idChk" resultType="int">
SELECT COUNT(*) FROM MP_MEMBER
WHERE USERID = #{userId}
</select>
- 패스워드 체크는 USERID와 USERPASS를 조건으로 걸고, 조건에 맞는 결과가 몇 개 인지 카운트한다.
- 아이디 중복 체크는 USERID를 조건으로 걸고, 조건에 맞는 결과를 카운트한다.
- 조회 결과 타입을 int로 하여 COUNT 값을 내보낸다.
'Study > DB' 카테고리의 다른 글
[SQL] 키 (0) | 2023.01.05 |
---|---|
[Oracle DB] 게시판 / 서브 쿼리, MP_REPLY, MP_FILE #2 (0) | 2023.01.03 |
[Oracle DB] 게시판 / 메인 쿼리, BOARD #1 (0) | 2023.01.03 |
[Oracle DB] 기본 명령어 (0) | 2023.01.03 |
Comments