Spring55 [TIL] 231114 Spring | ORM, JPA, Hibernate, Entity, 영속성 컨텍스트 ORM: Object-Relational Mapping 객체와 DB의 관계를 매핑해주는 도구 JPA: Java Persistence API 자바 ORM 기술에 대한 표준 명세 애플리케이션과 JDBC사이에서 동착 하이버네이트 Hibernate JPA의 표준 프레임워크 Entity JPA에서 관리되는 클래스, 즉 객체 Entity클래스 만들기 @Entity : 디폴트는 클래스 명 @Table: 매핑할 테이블 지정 @Id : PK지정 @Column : 매핑할 컬럼 지정 @GeneratedValue(strategy = GenerationType.IDENTITY) : 자동으로 순서에 맞게 기본 키가 추가됨 영속성 컨텍스트 Entity는 Entity Manager에 의해 관리된다 2023. 11. 14. [TIL] 231113 Spring | 3Layer Architecture, IoC와 DI, Bean 3 Layer Architecture - 길고 복잡한 코드를 유지 보수 등의 이유로 깔끔하게 관리하기 위해 Controlller, Servce , Repository로 나눔. 1. Controlller - 클라이언트의 요청을 받고 서비스에게 로직 처리를 전달함 - 서비스에서 처리 완료된 결과를 클라이언트에게 전달 2. Service - 사용자의 요구사항을 처리 - DB저장 및 조회가 필요할 경우 Repository에게 요청 3. Repository - DB 관리 - DB CRUD작업 처리 IoC와 DI - IoC (제어의 역전) - DI (의존성 주입) Bean - 스프링이 관리하는 객체 Spring IoC container - Bean을 모아둔 컨테이너 Bean 등록 방법 - @Component를 등록.. 2023. 11. 14. [TIL] 231110 Spring Database연결하기, SQL, JdbcTemplate, JDBC SQL - 데이터베이스를 조작하고 관리하는 언어 MySQL - RDBMS (Relational Managemnet System)의 한 종류 - Spring과 궁합이 좋아 많이 사용 DDL - Data Definition Language CREATE: 새로운 데이터베이스 및 테이블 생성 // CREATE DATABASE 테이블이름; ALTER: 데이터베이스와 테이블의 내용을 수정 DROP: 데이터베이스와 테이블을 삭제 TRUNCATE: 데이터베이스와 테이블을 삭제, 최초의 테이블이 만들어졌던 상태, 즉 컬럼값만 남김 CREATE TABLE memo //테이블 이름 ( id bigint AUTO_INCREMENT // 1씩 자동으로 증가하게 고유번호 생성 title varchar(100) primaary k.. 2023. 11. 10. [TIL] 231109 Spring 숙련주차 Entity 연관 관계 1:1 1:N N:1 관계 1:1 관계 - 단방향 @OneToOne 외래키의 주인을 직접 설정 음식과 고객이 1:1의 경우 주인은 @JoinColumn 사용 음식 (외래키의 주인) @Entity @Table(name = "food") public class Food { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private double price; @OneToOne @JoinColumn(name = "user_id") private User user; } 고객 @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = .. 2023. 11. 9. [TIL] 231108 Spring 숙련주차 Bean, 인증과 인가, 사용자 관리 Bean 등록: @Component 나 @Service/ @Repository로 자동으로 가능 Bean 사용 @Autowired사용하여 주입 같은 타입의 Bean - 같은 타입의 경우 어떤거를 사용할지 명시 - @Primary와 @Qualifier 이 동시에 있을 때 @Qualifier이 우선 (대부분 작은 범위의 설정이 큰 범위의 설정보다 우선) 인증과 인가 Aurhentication / Authorization 인증은 해당 유저가 실제 유저인지 확인 인가는 특정 리소스에 접근이 가능한지 확인 (예: 관리자 페이지 - 관리자 권한) 인증 방식: 쿠키-세션 방식 JWT방식 2023. 11. 8. [TIL] 231106 Spring 과제 Delete 하는 법 // PathVariable (Postman) @DeleteMapping("/board/{id}") public Long deleteBoard(@PathVariable Long id) { //해당 메모가 DB에 존재하는지 확인 if (boardList.containsKey(id)) { Board board = boardList.get(id); boardList.remove(id); return id; } else { throw new IllegalArgumentException("선택한 메모는 존재하지 않습니다."); } } http://localhost: 8080/api/board/4 4가 삭제할 데이터의 id ⬆️ 2023. 11. 6. 이전 1 ··· 6 7 8 9 10 다음