두 번째로 데이터베이스를 보여드릴까 합니다.
이렇게 4개 정도 만들었습니다.
익숙한 카멜케이스로 적었는데 알고보니 데이터베이스는 스네이크케이스를 사용한다고 합니다.
camelCase -> snake_case
각 테이블마다 고유 index값과 reg_date를 넣었습니다. 쓰던 안쓰던 필요하다고 생각했기 때문입니다.
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class MemberVO {
private int memberNo;
private String email;
private String userName;
private String password;
private String imageName;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
private Date regDate;
}
<?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="com.kojoo.mapper.memberMapper">
<select id="login" resultType="com.kojoo.vo.MemberVO">
SELECT
member_id AS memberNo,
email,
user_name AS userName,
password,
date_format(reg_date, '%Y-%m-%d %H:%m:%s') AS regDate,
image_name AS imageName
FROM
members
WHERE
(
email = #{email} OR user_name = #{userName}
) AND password = #{password}
</select>
<insert id="register">
INSERT INTO members
(
email,
user_name,
password
)
VALUES
(
#{email},
#{userName},
#{password}
)
</insert>
<select id="read" parameterType="com.kojoo.vo.MemberVO" resultType="com.kojoo.vo.MemberVO">
SELECT
email,
user_name AS userName,
reg_date AS regDate,
image_name AS imageName
FROM
members
WHERE
(
email = #{email},
userName = #{userName}
)
</select>
</mapper>
이 부분에서 아쉬운것은 비밀번호를 암호화 하지 않은것과 전 포스팅에서 말한것처럼 email or username으로 로그인 구현을 못한것입니다.
혹시나 고쳐져야 할 부분이 보인다면 댓글로 알려주시면 감사하겠습니다.
이 부분에서 주목해서 봐야할건 아무래도 image_name이라 생각합니다.
첨에는 mysql자체에 BLOB 형태로 저장을 하려고 했지만 이해하는데도 큰 문제가 있었을 뿐더러 경로를 저장하는것이 데이터 베이스를 조회할 때 메모리적으로도 좋다고 했기에 varchar형식으로 이미지 이름만 가져다가 넣고 jsp에서 불러올때는
"저장되는 이미지경로 + 이미지이름" 을 해서 가져오게했습니다.
ex) /resources/images/profile_image.jpg
지금 다시보니 프로필사진은 제가 직접 데이터베이스에 입력을해서 했네요..
프로필사진을 사이트내에서 변경, 삭제 하도록 수정 해야겠네요...ㅠ
'spring' 카테고리의 다른 글
WebSecurityConfigurerAdapter is deprecated (2) | 2022.08.03 |
---|---|
[JPA] table, entity 만들고 테스트하기 (0) | 2022.02.19 |
[Spring Boot] XCAPE Hint Project (0) | 2021.06.21 |
[스프링 프로젝트] 인스타그램 - 첫 페이지와 회원가입 페이지 (0) | 2021.05.04 |
[스프링 프로젝트] 인스타그램 흉내내기 (0) | 2021.04.10 |