전체 글 501

Assert.assertTrue(); & @Transactional

1. AsserAssert.assertTrue(); 반드시 데이터가 존재해야하는지, 아니면 존재하지 말아야하는지 확인할때 사용하는 방법입니다. 1L은 존재하기 때문에 존재한다고 출력이 잘 되었고, 1L은 다음 소스코드 과정에서 삭제가 되었기 대문에, 존재하지 않는다는것도 잘 출력이 되었습니다. 만약에, 이미 존재하지 않은 코드를 존재한다고 출력하면 어떻게 될까요? Assert.assertTrue(user.isPresent());에서 이미 걸려버리게 됩니다. 그래서 컴파일하는데 오류가 나오게 됩니다. 추가적으로 62번째 코드에서 오류났다는것을 확인 할 수 있습니다. 2. @Transactional 작동이 잘 완료된것을 볼 수 있습니다. 하지만 db에 들어가보면 id가 삭제되지않은것을 볼 수 있습니다. Tr..

카테고리 없음 2021.03.19

CRUD 중 read를 봅시다.

repository와 entity 설정을 다 해놓았기 때문에, userRepository.find~의 명령어를 써도 해당 내용을 읽어 올 수 있습니다. Optional user 는 자바를 공부하면 알 수 있지만, 제네릭타입을 받게 되어있습니다. selectUser가 있는부분에 user라고 동일하게 선언하면, 이름이 똑같기 때문에 오류가 나서, selectUser라고 선언했습니다. 그래서 selecrUser가 user에 들어있으면, 그 값을 꺼내달라는 명령어 입니다.

SpringBoot/JPA 2021.03.19

CRUD 중 create를 봅시다.

User객체를 생성해줍니다. 객체를 생성해줌으로써, query문을 사용하지않고, 객체로도 데이터베이스에 데이터를 삽입 해 줄 수 있습니다. 또한 setId부분은 auto increment이기 때문에 따로 값을 세팅하지 않아도 알아서 값이 설정이 잘 됩니다. userRepository.save에서 save는 반환하는 성질이 있기 때문에, user의 새로운객체인 newUser를 이용해서 값을 출력하면, DB에 삽입한 내용 데이터를 출력한 것을 볼 수 있습니다. 출력된 값을 보면, 잘 출력이 된것을 알 수 있습니다.

SpringBoot/JPA 2021.03.19

feat. main패키지와 test패키지의 차이점

다음 패키지를 보면 2가지의 패키지가 있습니다. 하나는 main 다른하나는 test입니다. 1. main은? 직접직인 코드 내용이 들어가기 때문에, 실질적인 스프링부트 프로젝트가 실행됨에 있어서 가장 핵심적인 부분이 들어가는 겁니다. 2. test는? (tdd라고 합니다.) main에 있는 내용을 테스트할 수 있는 환경이 되어 있습니다. 즉, 개발했을때 테스트할수있는 별도의 패키지가 만들어져 있는것입니다. cf. tdd란? Test Driven Development라고 테스트 주도개발입니다. 즉, 테스트가 개발을 이끌어 나간다라는 뜻입니다. 테스트를 먼저 만들고 테스트를 통과하기 위한 것을 짜는 것 즉, 만드는 과정에서 우선 테스트를 작성하고 그걸 통과하는 코드를 만들고를 반복하면서 제대로 동작하는지에 ..

카테고리 없음 2021.03.19

Repository

따로 쿼리문을 작성하지 않아도 기본적인 인터페이스를 통해서 CRUD를 사용할 수 있습니다. Create : 생성 Read : 읽기 (Select) Update : 업데이트 Delete : 삭제 respository의 클래스명을 지을때는, 기존에 있는 클래스 이름과 함께 respository라고 붙혀줍니다. 다음과 같이 @Repository를 추가하여 이 자바클래스는 Repository라는것을 알려줍니다. 또한 JPA를 상속받고 의 뜻은 엔티티에서 User라는 클래스에서 기본키의 형태는 Long인것을 가져온다는 뜻을 가집니다. 그럼 Entity와 Repository을 잘설정해야지 DB와 연결 할 수 있습니다.

SpringBoot/JPA 2021.03.18

Entity

Camel Case : 단어를 표기할 때 첫 문자는 소문자로 시작하며 띄어쓰기 대신 (대문자)로 단어를 구분 Java의 변수를 선언할 때 camelCase로 선언합니다. Snake Case : 단어를 표기할 때 모두 소문자로 표기하며, 띄어쓰기 대신(_) 로 표기. DB컬럼에 사용합니다. API를 정하기에 따라 다르지만, 주로 API 통신 규격에는 구간에서는 Snake Case를 많이 사용합니다. Entity : JAP에서는 테이블을 자동으로 생성해주는 기능 존재합니다. DB Table == JPA Entity Annotation 용도 @Entitiy 해당 calss가 entity임을 명시 @Table 실제 DB테이블의 이름을 명시 @Id Index Primary key를 명시 @Column 실제 DB ..

SpringBoot/JPA 2021.03.18