JDBC JDBC 등장 이유 등장 이유를 이해하기 전에 전반적인 구조는 다음과 같다. App , Web Browser => Application Server => DB Application Server DB 커넥션 연결 : 주로 TCP/IP를 이용하여 커넥션을 연결 SQL 전달 : 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달 결과 응답 : DB는 전달된 SQL 수행 후 해당 결과를 응답하며 애플리케이션 서버는 응답 결과를 활용함. 문제 문제는 각각의 데이터베이스마다 커넥션을 연결하는 방법, SQL 전달 방법, 결과를 응답도 다름 그래서 2가지 큰 문제가 있다. 데이터베이스를 다른 종류의 데이터베이스로 변경하면 애플리케이션 서버에 개발된 데이터베이스 사용 코드도 함..

1:N 관계와 N:1 관계에서는 중간 역할을 하는 테이블이 있으면 좋다. oracle에서는 autoincrement 기능이 없기 때문에 시퀀스를 만들어야 한다. CREATE SEQUENCE tmp_seq START WITH 1 INCREMENT BY 1 MAXVALUE 100 CYCLE NOCACHE; 다음에 할 것은 mapper를 사용해서 테스팅하는 방법을 고안한다. 또한 1:N, N:1 관계 엔티티 클래스와 mapper가 잘 동작하는 코드를 만들어야 한다.(mybatis, oracle)
application.properties # h2 # spring.datasource.url=jdbc:h2:~/testdb spring.datasource.username=sa spring.datasource.password= spring.datasource.driver-class-name=org.h2.Driver # MyBatis # mybatis.mapper-locations: classpath:mappers/**/*.xml mybatis.configuration.map-underscore-to-camel-case=true mybatis.type-aliases-package=com.example.demo.rest.domain application.yml spring: datasource: url: j..

@RequestBody를 통해 Json 데이터를 받아 rest api를 활용하여 crud 작업을 수행할 수 있다. 여기서는 patch과정을 통해 crud 작업을 수행한다. @Entity @Getter @Setter @Builder @AllArgsConstructor @NoArgsConstructor public class MenuItem { @Id @GeneratedValue private long id; private long restaurantId; private String name; @JsonInclude(JsonInclude.Include.NON_DEFAULT) private boolean deleted; } 롬복을 통해 빌더 패턴과 Getter, Setter를 표현한 엔티티이다. (JPA) @..
Exception은 중요한 로직의 구성요소 중 하나다. 로직을 처리하는 도중 사용자 에러, 치명적인 에러에 Exception을 부여하여 로직을 깔끔하게 한다. Spring에서 이러한 부분을 고려하여 여러가지 어노테이션을 가지고 있다. @RestControllerAdvice public class RestaurantControllerAdvice { @ResponseBody @ResponseStatus(HttpStatus.NOT_FOUND) @ExceptionHandler(RestaurantNotFoundException.class) public String restaurantNotFound(){ return "{}"; } } /* @RestControllerAdvice은 Spring에서 ExceptionH..
Validation은 특정한 조건을 만족하지 못하고 작업을 수행 시 잘못된 요청을 돌려주게 만드는 과정이다. @RequestBody에 @Validated와 해당 엔티티의 필드 항목에 어노테이션을 달아 조건을 붙여준다.(핵심) @Entity @Getter @Setter @Builder @AllArgsConstructor @NoArgsConstructor public class Restaurant { @Id @GeneratedValue private long id; @NotEmpty private String name; @NotEmpty private String address; @Transient private List menuItems; } // 컨트롤러 // @CrossOrigin @RestContro..
JPA 활용 시 코드 정리. @Entity public class Restaurant { ... } // JPA에서 활용할 엔티티를 어노테이션을 붙여서 Spring에 적시한다. // 컨트롤러 - 서비스 - 레파지토리에 대한 코드 @CrossOrigin @RestController public class RestaurantController { @Autowired private RestaurantService restaurantService; @GetMapping("/restaurants") public List getRestaurants(){ return restaurantService.getRestaurants(); } @GetMapping("/restaurants/{id}") public Restau..
REST API : REpresentaitional state Transter ( 표현 상태 - Resource(URL, URI) >CRUD ) 결과를 받거나 넘길 때 JSON 데이터로 공유한다. 이 개념을 알아두고 시작한다. @RestController public class RestaurantController { @Autowired private RestaurantService restaurantService; @GetMapping("/restaurants") public List getRestaurants(){ return restaurantService.getRestaurants(); } @GetMapping("/restaurants/{id}") public Restaurant getRestau..
- Total
- Today
- Yesterday
- https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
- https://react.vlpt.us/
- https://velog.io/@juno7803/React%EA%B0%80-%ED%83%9C%EC%96%B4%EB%82%9C-%EB%B0%B0%EA%B2%BD
- https://wikidocs.net/68
- https://react.vlpt.us/basic/11-render-array.html
- Co
- https://jwprogramming.tistory.com/52
- ㄴ
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |