domian 아래 dto,vo로 만들어줬던것들 -> Entity Class.
repositories > 내부적으로 AOP동작
-> interface 하나만 선언해주면 crud, 페이징 모두 끝남
- ORM(Object Relational Mapping) : 객체와 DB테이블이 매핑을 이루는 것.(테이블을 객체로서 다룰 수 있게 함)
1) ORM을 이용하면 SQL Query가 아닌 메서드로 데이터를 조작할 수 있다.(ex. user테이블과 매핑된 객체를 user라고 할때, user.findAll()메서드로 select*from user를 동작시킬 수 있음)
2) 쿼리를 직접 작성하지 않고 메서드로 핸들하다보니 ORM을 사용하면 생산성이 높아지지만, 쿼리가 복잡해지만 ORM으로 표현하는데 한계가 있고 성능이 쿼리를 이용한 동작보다 느릴 수 있다.
3) 각 language마다 orm을 구현한 스펙이 있음
(java는 JPA-jsut api ) 이 JAP를 구현한 제품이 Hibernate.
ORM(Object Relational Mapping)
- JPA(Java Persistent API) : 자바 ORM기술에 대한 API 표준 명세.
1) ORM을 사용하기 위한 인터페이스를 모두 모아둠.
2) JPA를 사용하기 위해서는 이 JPA를 구현한 Hiberante같은 ORM프레임워크 제품을 사용해야 한다.
- JDBC와 JPA
?
- 아래없는내용 : JPA Query Method (메소드명만으로 쿼리를 만들어 주는 것) 아래 블로그 참고
https://ict-nroo.tistory.com/117
- swagger : 자동으로 html페이지를 만들어줌(Rest API DOCUMENT를 자동으로 만들어준다.). boot와 결합하면 좋다(?)
- 의존성 라이브러리설정, 컨피그레이션 설정 필요 (아래 블로그 참고)
https://jojoldu.tistory.com/31
: pom.xml에 swagger 관련 라이브러리 추가(2개)
: zerock.day2 하위에 config 폴더 만들고, SawggerConfig.java넣기 => html 페이지가 만들어짐 > 컨트롤러가 없기때문에 아무것도 뜨진 않음. (error컨트롤러는 있어서 그거는 뜸)
(http://localhost:8080/swagger-ui.html)
: Controller 추가
- zerock.day2 하위에 controller 폴더 만들고 BoardController -> @RestController, @RequestMapping("/board")
: 페이지보면 boardController 보이고 파라미터 테스트를 할 수 있음.
(( 부트의 목적은 개발을 빨리하는 거기 때문에 sevice layer를 안만드는 경우가 많지만, 정석으로 service layer도 만들어 줘야 함. ))
: BoardRepository 주입받고
return new ResponseEntity<>(boardRepo.findById(bno).get(),HttpStatus.OK); 하게되면
Json데이터를 확인할 수 있음(restcontroller니까)
POST MAPPING도 하자
테스트도 해보자
DB확인해보면 잘 등록된것을 확인할 수 있음.
------------------- list getmapping
요로코롬(왼쪽) 만들면 파라미터 수집이 안됨.
ppt의 properties 4줄 설정해주면 됨.
-> 그러나 pageable의 파라미터의 page는 pageNum으로 자동 설정되어있고
우리가 설정한 property는 page로 되어있음. -> utl에 board/list?page=22 이런식으로 직접 설정하면 파라미터 수집이 잘 됨. 그러나 swagger ui 에서 테스트해보면 안됨(파라미터명이 pageNum으로 되어있어서)
그래서 그냥.. URL직접 수정 해라..
요로코롬 하면
뿅
테스트 잘됨.
page파라미터 안주면 기본 1페이지. url뒤에 ?page=3 이런식으로 해주면 됨..
------------------ 검색
return type을 page로 하면 searchDTO는 어떻게 넘겨줘? -> 객체화해줘야함 -> MultiValueMap이용!
'Tech > Web' 카테고리의 다른 글
Spring framework이 없었다면? (0) | 2020.01.20 |
---|---|
JPQL과 QueryDSL (0) | 2019.12.01 |
[Spring] UriComponentsBuilder의 사용 (0) | 2019.11.22 |
MyBatis Mapper XML파일(ResultMap,Collection) (0) | 2019.11.18 |
Spring-Web-Security (0) | 2019.11.15 |
댓글