관리 메뉴

bread, coffee and coding

Spring Boot 2.0 본문

Springboot

Spring Boot 2.0

DongJin lee 2021. 7. 22. 15:22

Spirng Initializr으로 생성

 

 

2.5.2 버젼

종속요소 추가

 

 

 


Board.java

 

package com.zerock.domian;


import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;

import javax.persistence.*;
import java.sql.Timestamp;

@Getter
@Setter
@ToString
@Entity
@Table(name="table_boards")
public class Board {

    @Id
    //@GeneratedValue(strategy = GenerationType.IDENTITY)   //MySQL에서 Auto_Increment
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "BOARD_SEQ") //오라클에서 Sequence 사용
    //sequenceName-->시퀀스 생성자 이름 name-->시퀀스 이름
    @SequenceGenerator(sequenceName = "BOARD_SEQ", allocationSize = 1, name="BOARD_SEQ")
    private Long bno;

    private String title;
    private String writer;
    private String content;

    @CreationTimestamp
    private Timestamp regdate;      //LocalDateTime
    @UpdateTimestamp
    private Timestamp updatedate;   //LocalDateTime
}

BoardRepository.Interface

 

package com.zerock.domian;

import org.springframework.data.repository.CrudRepository;

public interface BoardRepository extends CrudRepository<Board, Long> {

}

 


Boot02Application.java

package com.zerock;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Boot02Application {

    public static void main(String[] args) {
        SpringApplication.run(Boot02Application.class, args);
    }

}

application.properies

 

server.port=7070
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=hr
spring.datasource.password=hr

#스키마 생성(create)
#새롭게 만들기 create 연속해서 update
spring.jpa.hibernate.ddl-auto=update
#DDL 생성 시 데이터베이스 고유의 기능을 사용하는가?
spring.jpa.generate-ddl=false
#실행되는 SQL문을 보여줄 것인가?
spring.jpa.show-sql=true
#데이터베이스는 무엇을 사용하는가?
spring.jpa.database=oracle
#로그 레벨 상세로그 debug 간략 info
logging.level.org.hibernate=debug
#logging.level.org.hibernate.SQL=debug
#오라클 드라이버 상세 지정
#10g 11g 같다
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect

BoardRepositoryTest

package com.zerock.domain;

import com.zerock.domian.Board;
import com.zerock.domian.BoardRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.Optional;
import java.util.stream.Stream;

@RunWith(SpringRunner.class)
@SpringBootTest
public class BoardRepositoryTest {

    @Autowired
    private BoardRepository boardRepo;

    @Test
    public void inspect() {
        //실제 객체의 클래스 이름
        Class<?> clz = boardRepo.getClass();

        System.out.println(clz.getName());

        //클래스가 구현하고 있는 인터페이스 목록
        Class<?>[] interfaces = clz.getInterfaces();

        Stream.of(interfaces).forEach(inter -> System.out.println(inter.getName()));

        //클래스의 부모 클래스
        Class<?> superClasses = clz.getSuperclass();

        System.out.println(superClasses.getName());
    }

    @Test
    public void testInsert() {
        Board board = new Board();
        board.setTitle("게시물의 제목");
        board.setContent("게시물의 내용 넣기");
        board.setWriter("user00");

        boardRepo.save(board);
    }

    @Test
    public void testRead() {
        boardRepo.findById(1L).ifPresent((board) -> {
            System.out.println(board);
        });
    }

    @Test
    public void testUpdate() {
        System.out.println("Read First..........................");
        Optional<Board> board = boardRepo.findById(1L);

        System.out.println("Update Title........................");
        board.get().setTitle("수정된 제목입니다.");

        System.out.println("Call Save().........................");
        boardRepo.save(board.get());
    }

    @Test
    public void testDelete() {
        System.out.println("DELETE Entity ");

        boardRepo.deleteById(1L);
    }
}

Boot02ApplicationTests

 

package com.zerock;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Boot02ApplicationTests {

    @Test
    void contextLoads() {
    }

}

환경설정

 

에디터 -> 파일 인코딩 -> 전역 인코딩/프로젝트 인코딩:  UTF-8 로 변경 ->적용

 

 

 

 

빌드,실행,배포 > 빌드 도구 > Gradle 

 

다음을 사용하여 빌드 및 실행 : Intellij IDEA

다음을 사용하여 테스트 실행 : Intellij IDEA

 

 

'Springboot' 카테고리의 다른 글

Spirngboot D-3  (0) 2021.07.16
Springboot 2일차  (0) 2021.07.13
Springboot 1일차  (0) 2021.07.12