bread, coffee and coding
Spring Boot 2.0 본문


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 |