springboot

준비물


스프링부트 프로젝트 생성

프로젝트 생성시 설정 값

Next 버튼 클릭

Finish 버튼 클릭

코드 실행

테스트 코드 실행


Controller 생성 및 실행

Controller 생성

HelloController.java

package com.springboot.ex01.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello World";
    }
}

실행 1

실행 2


Spring Data JPA

Spring Data JPA 용 프로젝트 생성

설정

설정 전 실행

DB Driver 및 정보 설정

pom.xml

<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>         
        </dependency>

application.properties

spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.username=sa
spring.datasource.password=

설정 후 실행

2021-10-18 16:19:23.864  INFO 13176 --- [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2021-10-18 16:19:23.934  INFO 13176 --- [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.

ORM과 JPA

ORM (Object Relation Mapping)

JPA (Java Persistence API)

클래스와 테이블의 유사점

Stpring Data JPA - HIbernate

 Spring Data JPA <--> HIbernate <--> JDBC <--> DB

엔터티 객체와 JpaRepositoy


간다한 Memo 기능 구현

엔터티 클래스 생성

어노테이션 설명

strategy = GenerationType.IDENTITY 키 생성 전략
Lombok 라이브러리 어노테이션

Memo.java

package com.springboot.jpa01.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Entity
@Table(name="tbl_memo")
@ToString
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Memo {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long mno;

    @Column(length = 200, nullable = false)
    private String memo;

}
application.properties 추가 설정

Console Info

Hibernate: 

    create table tbl_memo (
       mno bigint generated by default as identity,
        memo varchar(200) not null,
        primary key (mno)
    )