Skip to content

Commit

Permalink
Merge pull request #2 from MEDIFLIX-ST-A/refactor/#1
Browse files Browse the repository at this point in the history
[refactor] yml 파일 변경(#1)
  • Loading branch information
isprogrammingfun authored Mar 15, 2023
2 parents 246cd93 + a33577c commit 16838d5
Show file tree
Hide file tree
Showing 9 changed files with 138 additions and 36 deletions.
22 changes: 22 additions & 0 deletions src/main/java/com/mediflix/backend/config/BaseTime.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.mediflix.backend.config;

import lombok.Getter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import javax.persistence.EntityListeners;
import javax.persistence.MappedSuperclass;
import java.time.LocalDateTime;

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseTime {

@CreatedDate
protected LocalDateTime createdAt;

@LastModifiedDate
protected LocalDateTime updatedAt;
}
14 changes: 7 additions & 7 deletions src/main/java/com/mediflix/backend/dto/MemberDTO.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.mediflix.backend.dto;

import com.mediflix.backend.entity.MemberEntity;
import com.mediflix.backend.entity.Member;
import lombok.*;

@Getter
Expand All @@ -18,13 +18,13 @@ public class MemberDTO {
private String member_major;

// 로그인 과정에서 Service에서 entity -> DTO를 위한 함수
public static MemberDTO toMemberDTO(MemberEntity memberEntity) {
public static MemberDTO toMemberDTO(Member member) {
MemberDTO memberDTO = new MemberDTO();
memberDTO.setMemberId(memberEntity.getMemberId());
memberDTO.setUserId(memberEntity.getUserId());
memberDTO.setUserPw(memberEntity.getUserPw());
memberDTO.setMemberName(memberEntity.getMemberName());
memberDTO.setMember_major(memberEntity.getMember_major());
memberDTO.setMemberId(member.getMemberId());
memberDTO.setUserId(member.getUserId());
memberDTO.setUserPw(member.getUserPw());
memberDTO.setMemberName(member.getMemberName());
memberDTO.setMember_major(member.getMember_major());
return memberDTO;
}
}
33 changes: 33 additions & 0 deletions src/main/java/com/mediflix/backend/entity/Hashtag.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.mediflix.backend.entity;

import com.mediflix.backend.config.BaseTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.persistence.*;

@Getter
@Table(name = "hashtag")
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
public class Hashtag extends BaseTime {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "hashtag_id")
private Long hashtagId;

@Column(length = 20, nullable = false)
private String name;


@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "video_id")
private Video video;


}
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
@Getter
@Setter
// 이런 Table 이름이 있다면 지우고, 새로 생성하겠다!
@Table(name = "member_table")
public class MemberEntity {
@Table(name = "member")
public class Member {
//요런 형식을 갖는 컬럼들이 생성되는 것이다.

//회원 번호
Expand Down Expand Up @@ -55,11 +55,11 @@ public class MemberEntity {
private Long watch_time;

// 이후 DB에 값을 저장하는 메소드 실행. (DTO -> entity)
public static MemberEntity toMemberEntity(MemberDTO memberDTO) {
MemberEntity memberEntity = new MemberEntity();
memberEntity.setUserId(memberDTO.getUserId()); // 매개변수는 DTO에 담긴 걸 entity에 넘기는 작업이므로 get!
memberEntity.setUserPw(memberDTO.getUserPw());
memberEntity.setMemberName(memberDTO.getMemberName());
return memberEntity;
public static Member toMemberEntity(MemberDTO memberDTO) {
Member member = new Member();
member.setUserId(memberDTO.getUserId()); // 매개변수는 DTO에 담긴 걸 entity에 넘기는 작업이므로 get!
member.setUserPw(memberDTO.getUserPw());
member.setMemberName(memberDTO.getMemberName());
return member;
}
}
39 changes: 39 additions & 0 deletions src/main/java/com/mediflix/backend/entity/Video.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.mediflix.backend.entity;

import com.mediflix.backend.config.BaseTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.time.LocalDateTime;

@Getter
@Table(name = "video")
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
public class Video extends BaseTime {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "video_id")
private Long videoId;

@Column(length = 20, nullable = false)
private String category;

@Column(length = 20, nullable = false)
private String title;

@Column(length = 20, nullable = false)
private String cast;

@Column(name = "video_view")
private Long view;

private LocalDateTime uploadDate;

}
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package com.mediflix.backend.repository;

import com.mediflix.backend.entity.MemberEntity;
import com.mediflix.backend.entity.Member;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;

// DATABASE 작업을 해주는 최종 인터페이스 라고 생각해주면 된다!
public interface MemberRepository extends JpaRepository<MemberEntity, Long> {
public interface MemberRepository extends JpaRepository<Member, Long> {
//첫번째 인자는 어떤 Entity 클래스를 받을 것인지를 나타내고, 두 번째 인자는 Entity 클래스의 PK 타입을 적어주는 것이다.(ID)

//이메일로 회원 정보를 조회함. (select * from member_table where member_email=?) 와 같은 형태
// Optional 은 null 방지를 해줌.
Optional<MemberEntity> findByUserId(String userId);
Optional<Member> findByUserId(String userId);

}
22 changes: 11 additions & 11 deletions src/main/java/com/mediflix/backend/service/MemberService.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.mediflix.backend.service;

import com.mediflix.backend.dto.MemberDTO;
import com.mediflix.backend.entity.MemberEntity;
import com.mediflix.backend.entity.Member;
import com.mediflix.backend.repository.MemberRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -22,8 +22,8 @@ public void save(MemberDTO memberDTO) {
// repositry의 save메서드를 호출해야 한다. (조건 : entity 객체를 넘겨줘야 한다.)
// 1. dto -> entity 변환.
// 2. repository의 save 메서드를 호출해야 한다.
MemberEntity memberEntity = MemberEntity.toMemberEntity(memberDTO);
memberRepository.save(memberEntity); // save()메서드는 JPA가 제공하는 메서드임.
Member member = Member.toMemberEntity(memberDTO);
memberRepository.save(member); // save()메서드는 JPA가 제공하는 메서드임.

}

Expand All @@ -33,17 +33,17 @@ public MemberDTO login(MemberDTO memberDTO) {
1. 회원이 입력한 이메일로 DB에서 조회를 한다.
2. DB에서 조회한 비밀번호와 사용자가 입력한 비밀번호가 일치하는지 판단한다.
*/
Optional<MemberEntity> byUserId = memberRepository.findByUserId(memberDTO.getUserId());
Optional<Member> byUserId = memberRepository.findByUserId(memberDTO.getUserId());
if (byUserId.isPresent()) {
// 조회 결과가 있다.(해당 이메일을 가진 회원 정보가 있다.)
MemberEntity memberEntity = byUserId.get();
Member member = byUserId.get();
//test

// 비밀번호가 같은지 확인..
if (memberEntity.getUserPw().equals(memberDTO.getUserPw())) {
if (member.getUserPw().equals(memberDTO.getUserPw())) {
// 비밀번호 일치
// entity -> dto 변환 후 리턴
MemberDTO dto = memberDTO.toMemberDTO(memberEntity);
MemberDTO dto = memberDTO.toMemberDTO(member);
return dto;
}
else {
Expand All @@ -59,11 +59,11 @@ public MemberDTO login(MemberDTO memberDTO) {

// 회원목록 조회 로직
public List<MemberDTO> findAll() {
List<MemberEntity> memberEntityList = memberRepository.findAll();
List<Member> memberList = memberRepository.findAll();
List<MemberDTO> memberDTOList = new ArrayList<>();
for (MemberEntity memberEntity: memberEntityList) {
for (Member member : memberList) {
//DTO객체를 담기 위한 List
memberDTOList.add(MemberDTO.toMemberDTO(memberEntity));
memberDTOList.add(MemberDTO.toMemberDTO(member));

// 위의 문장이랑 같은 의미.
// MemberDTO memberDTO = MemberDTO.toMemberDTO(memberEntity);
Expand All @@ -74,7 +74,7 @@ public List<MemberDTO> findAll() {

//개인 회원 상세조회 로직
public MemberDTO findById(Long id) {
Optional<MemberEntity> optionalMemberEntity = memberRepository.findById(id);
Optional<Member> optionalMemberEntity = memberRepository.findById(id);
// 값이 존재할 때..
if (optionalMemberEntity.isPresent()) {
// Optional로 감싸진 값을 꺼내고, DTO에 리턴한다.
Expand Down
11 changes: 9 additions & 2 deletions src/main/resources/application-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,17 @@ spring:

jpa:
hibernate:
ddl-auto: update
ddl-auto: create
properties:
hibernate:
format_sql: true
default_batch_fetch_size: 100
show-sql: true
database: mysql
database: mysql
# Initial Data config
defer-datasource-initialization: true
sql:
init:
data-locations: classpath:/sql/*
mode: always
separator: ^;
11 changes: 6 additions & 5 deletions src/main/resources/sql/member.sql
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
DELETE FROM member;

insert into member_table values(1, "정형돈", "정형외과", "정형적", "서울", "user", "user1", "user1pw", 100);
insert into member_table values(2, "유재석", null, "내맘임", "인천", "admin_1", "user2", "user2pw", 80);
insert into member_table values(3, "정준하", "치과", "식신", "대전", "user", "user3", "user3pw", 120);
insert into member_table values(4, "하하", "외과", "하하하", "대구", "user", "user4", "user4pw", 60);
insert into member_table values(5, "박명수", null, "늙은이", "제주", "admin_2", "user5", "user5pw", 200);
insert into member values(1, "정형돈", "정형외과", "정형적", "서울", "user", "user1", "user1pw", 100);
insert into member values(2, "유재석", null, "내맘임", "인천", "admin_1", "user2", "user2pw", 80);
insert into member values(3, "정준하", "치과", "식신", "대전", "user", "user3", "user3pw", 120);
insert into member values(4, "하하", "외과", "하하하", "대구", "user", "user4", "user4pw", 60);
insert into member values(5, "박명수", null, "늙은이", "제주", "admin_2", "user5", "user5pw", 200);

0 comments on commit 16838d5

Please sign in to comment.