목록분류 전체보기 (170)
관심쟁이 영호
오늘은 Dummy Data를 넣어서 테스트를 해볼 예정이다. "com.cos.blog.test" pakage를 새로 만든다. 그리고 DummyControllerTest 클래스를 새로 만들어주자. 그리고 다음 코드를 살펴보자. // UserRepository.class //@Repository 생략가능 public interface UserRepository extends JpaRepository{ //User를 다루는 것, Primary key는 integer야 } JpaRepository을 상속받는다. 이렇게 상속받게되면, 필요한 메서드들을 상속받을 수 있다. 예를 들어, findOne, findAll 등등 User 테이블에 접근하여 가지고오는 모든 행위를 상속받을 수 있다. 이제 DummyContro..
스프링 공부를 해본 적이 있다면, 누구나 연관관계에 대해서 고민을 해본 적이 있을 것이다. 오늘은 그 연관관계가 어떤 것인지 살펴볼 예정이다. 아래의 그림을 보자. 어떠한 게시판의 게시글의 예시이다. 작성자: 홍길동은 User Table에서 데이터를 가지고 있다. 내용은 Board Table에서 데이터를 가지고 있다. 댓글은 Reply Table에서 데이터를 가지고 있다. 우리가 JPA를 사용하지 않을 때는, DB에서 JOIN을 이용하여 조회를 한다음 해당하는 데이터를 게시판에 뿌려주는 방식을 사용했을 것이다. 여기서 훨씬 편리하게 JPA기술을 사용할 수가 있다. JPA를 사용하면 우리가 Board에만 조회쿼리를 날려도 다 나온다. 흐름을 보면 SELECT * FROM Board Where Id = 1;..
이번엔 Reply 클래스를 생성했다. 이 코드가 완성되면 DB에 Reply Table이 생성된다. 코드를 보자! // Reply.java @Data @NoArgsConstructor @AllArgsConstructor @Builder @Entity //User 클래스가 스프링이 시작할 때, MySQL에 테이블을 생성한다. public class Reply { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; // 시퀀스, auto_increment @Column(nullable = false, length = 200) private String content; @ManyToOne @JoinColumn(name = "boardi..
이번엔 Board Table을 생성해보자. 먼저 코드를 살펴보면 // Board.java @Entity public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) //auto_increment private int id; @Column(nullable = false, length = 100) private String title; @Lob // 대용량 데이터용 private String content; // 섬머노트 라이브러리 사용하기. 디자인할 때, 태그가 섞여서 디자인이 됨 @ColumnDefault("0") private int count; //조회수 //글쓴이를 작성하기 위해서는 id값을 통해서 Select를 한번더 해..
이번 시간은 user 테이블을 만들어볼 계획이다. 코드를 바로 보자. // User.java @Entity //User 클래스가 스프링이 시작할 때, MySQL에 테이블을 생성한다. public class User { @Id //Primary key //프로젝트에서 연결된db의 넘버링 전략을 따라간다. -> 오라클이나 mysql에 따라 바뀐다는 뜻이다. @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; // 시퀀스, auto_increment @Column(nullable = false, length = 30) private String username; // 아이디 @Column(nullable = false, length = 10..