07-02 Security

Ruinak·2021년 7월 2일
0

Spring Lesson

목록 보기
21/23
post-custom-banner

삭제 버튼

  • list.jsp에서 삭제버튼을 활성화하기
  • 앞에서 사용했던 삭제하기는 적용이 되지 않음
  • 클릭시 정상 작동은 됨
  • 페이지 소스를 보면 삭제 버튼이 여러개임을 알 수 있음
  • 그러므로 다름을 식별하기 위해서 id를 받아야 함
  • ${member.id}를 onclick 속성으로 추가해줌
  • alert 창에서 해당 번호가 뜨는걸 확인할 수 있음
  • delete가 작동할 수 있게 코드 수정

  • 삭제하기의 방법은 여러가지로 onclick으로 사용하거나 class로 설정해서 사용 가능
  • 이 영역에서 버튼이 클릭이되면 함수가 실행됨
  • 삭제를 할 수 있는 방법은 매우 다양하다

Builder

  • Test라는 이름의 새로운 Java 프로젝트 생성
  • User 클래스 생성 후 작성
  • UserBuilder 클래스 생성 후 작성
  • User 클래스에 static 메서드 추가
  • static으로 선언되면 클래스이름으로 접근이 가능해짐
  • User 객체 생성
  • .연산을 이용해서 연속적으로 이어 붙여 넣을 수 있음
  • 결과 확인
  • 새로운 객체를하나 더 만들 수 있음
  • userBuilder 만드는 걸 스킵해줌
  • Test만 만들어서 실행하면 잘 실행이됨

테이블간의 관계

  • 리뷰와 호텔의 N:1 연관
  • Hotel 클래스 작성
  • @Entity를 클래스에 달아줘야만 MySQL에서 테이블이 생성됨
  • @Id를 달아주고, @GeneratedValue(strategy = GenerationType.IDENTITY)를 달아주면 AI가 적용됨
  • Enum으로 Grade를 생성
  • Address 클래스를 따로 생성
  • Hotel에서 Grade와 Address를 작성해줌
  • Review 클래스 작성
  • @Table(name="hotel_review")를 붙여주면 MySQL에 들어가는 테이블의 이름을 변경해서 지정 가능
  • @JoinColumn(name="hotel_id")를 통해서 테이블끼리 조인시킬때의 Column 이름도 지정 가능
  • 호텔입장에서는 게시글이 여러개 들어갈 수 있음(1:N의 관계). 그러므로 ManyToOne
  • Hotel은 Review와 정반대이므로 OneToMany가 됨
  • 외래키가 설정된 것들이 주된 녀석이므로 Hotel 클래스에 @JoinColumn(name="hotel_id") 추가
  • id의 자료형을 Long형으로 변경
  • cascade 추가해주기
  • boot를 실행 시키면 MySQL에 테이블이 생성됨
  • Database -> Reverse Engineer에서 Diagram 생성 가능
  • User 클래스 작성( Hotel처럼 작성하면 됨 )
  • LAZY는 실행시점에 조인을 하므로 영속성컨텍스트에 들어갈 수 없는 경우에는 트랜잭션이 풀릴수도 있음
  • 추가적으로 부하가 많이 걸려 부담스러울 수 있음
  • fetch 조인을 해서 필요할 때 LAZY를 사용함
  • EAGER는 생성시에 바로 조인을 함
  • JoinColumn은 연관관계를 맺어줌
  • mappedBy는 " " 안의 객체를( 아니 객체이름이었음 ㅋㅋ) 참조하게 만듬

새로운 프로젝트 demo3 생성

  • 게시판과 부트 만들었던거를 boot로 만들어볼 예정
  • 프로젝트 새로 만들기
  • pom.xml에 jasper랑 jstl 추가
  • domain이란 용어랑 model이랑 vo랑 다 같은 의미임
  • 패키지와 폴더 생성
  • Board 클래스 생성
  • @Temporal(TemporalType.TIMESTAMP)를 사용해서 현재시간으로 설정이 가능함
  • Comment 클래스 생성
  • home.jsp 만들고 HomeController를 만들어서 웹이 잘 돌아가는지 확인
profile
Nil Desperandum <절대 절망하지 마라>
post-custom-banner

0개의 댓글