2주차 내용-1
API : 클라이언트와 서버가 상호작용하는 창구
RDBMS: 관계형 데이터베이스, SQL : 데이터베이스 언어
Ø H2 : 서버가 작동할때만 구, 서버 중단시 모두 삭제됨, In-memory DB
Ø MySQL : 서비스 배포 시 사용하는 데이터베이스, AWS RDS 서비스 사용할 예정
JPA : 스프링은 자바로 작동, DM 는 SQL로 작동, 이 두 사이의 번역기 역할
Repository : JPA를 작동시키는 매개체
H2 웹콘솔 띄워보기
src > main > resources > application.properties 에서 아래 웹콘솔 설정 복사
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
[코드작성시 java 폴더, 설정 등 작업은 resources 폴더 내에서 작성 ]
http://localhost:8080/h2-console
오류발생시 JDBCURL : jdbc:h2:mem:testdb 입력 시 해결 후 아래와 같은 웹콘솔 구동됨
H2 웹콘솔에서 SQL 연습하기
Ø 테이블 생성
CREATE TABLE IF NOT EXISTS courses ( // courses 없을경우 table 생성
id bigint(5) NOT NULL AUTO_INCREMENT, // bigint : long 형, 자동증가
title varchar(255) NOT NULL, // vachar: 문자형
tutor varchar(255) NOT NULL,
PRIMARY KEY (id) );
Ø 데이터 삽입
INSERT INTO courses (title, tutor) VALUES
('웹개발의 봄, Spring', '남병관'), ('웹개발 종합반', '이범규');
Ø 데이터 조회
SELECT * FROM courses;
JPA 시작하기
SQL 없이 데이터 생성,조회,수정,삭제 할 수 있도록 해주는 자바 번역기 / Only Repository
Domain : 테이블 개념 Repository : SQL 개념
@NoArgsConstructor // 기본생성자를 대신 생성해줍니다.
@Entity // 테이블임을 나타냅니다.
public class Course {
@Id // ID 값, Primary Key로 사용하겠다는 뜻입니다.
@GeneratedValue(strategy = GenerationType.AUTO) // 자동 증가 명령
private Long id;
@Column(nullable = false) // 컬럼 값이고 반드시 값이 존재해야 함을 나타냅니다.
private String title;
@Column(nullable = false) // NOT NULL
private String tutor;
// id 는 DB에서 사용되기에 get 설정 x
// repository 에서 후에 set 설정하기에 입력할 필요 x
public String getTitle() {
return this.title;
}
public String getTutor() {
return this.tutor;
}
public Course(String title, String tutor) {
this.title = title;
this.tutor = tutor;
}
Ø Course.java
@Entity , @Id > ALT+Enter 로 첫번째 Import class 입력으로 자동생성
자바 애너테이션(Java Annotation)은 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종이다. 보통 @ 기호를 앞에 붙여서 사용한다. JDK 1.5 버전 이상에서 사용 가능하다. 자바 애너테이션은 클래스 파일에 임베디드되어 컴파일러에 의해 생성된 후 자바 가상머신에 포함되어 작동한다.
public interface CourseRepository extends JpaRepository<Course, Long> {
}
Ø Course 에 관한 Repository 생성, JPA Repository 에 있는 Course 의 Long 형태를 상속
Ø CourseRepository.java
application.properties 에 아래 코드 추가
spring.jpa.show-sql=true
Ø spring 이 jpa 로 작동할 때 sql 출력해주는 코드
'강의정리들 > [2021] Spring Boot' 카테고리의 다른 글
[코스파] 스프링 기초 4주차-2 (0) | 2022.01.02 |
---|---|
[코스파] 스프링 기초 4주차-1 (0) | 2022.01.02 |
[코스파] 스프링 기초 3주차 (0) | 2022.01.01 |
[코스파] 스프링 기초 2주차-3 (0) | 2021.12.05 |
[코스파] 스프링 기초 2주차-2 (0) | 2021.12.05 |