1. 우선 Spring Starter Project로 boot02-1이라는 프로젝트를 만듭니다.
2. 프로젝트를 생성할때 라이브러리 모듈은 Lombok, Spring Data JPA, MySQL Driver, Spring Web을 선택합니다.
(참고로 스프링 부트는 2.5.3을 기준으로 했습니다.)
https://julian5383.tistory.com/35
[Spring] Spring Tool Suite 4와 MySQL Workbench 8.0 연결방법
현재 Spring 공부를 들어가서 Spring와 MySQL을 연결하는 방법을 알려드리려고 합니다. 1. 먼저 메뉴 창에서 Help -> Install New Software를 들어갑니다. 2. Work with 목록에서 "Latest Eclipse Release - htt..
julian5383.tistory.com
3. MySQL을 설정합니다. 프로젝트를 위한 데이터베이스 스키마 jpa_ex를 만듭니다.(만드는 방법은 위의 게시물 참조)
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost/jpa_ex?characterEncoding=utf8&serverTimezone=Asia/Seoul
spring.datasource.username = root
spring.datasource.password = //이곳에는 이용할 MySQL의 localhost 비밀번호를 입력합니다.
spring.jpa.hibernate.ddl-auto=create
spring.jpa.generate-ddl=false
spring.jpa.show-sql=true
spring.jpa.database=mysql
logging.level.org.hibernate=info
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
4. src/main/resources에서 application.properties에서 데이터베이스 연결에 필요한 JDBC 연결 정보들을 입력합니다.
그리고 url 부분에서 jpa_ex는 이용할 데이터베이스 스키마의 이름을 입력하셔야 합니다.
package org.zerock.domain;
import java.sql.Timestamp;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@Entity //해당 클래스가 엔티티 클래스임을 명시해줌
@Table(name="tbl_boards") // 데이터베이스에 클래스명과 동일한 이름으로 작성되어야 함
public class Board {
@Id // 해당 컬럼이 식별키(Primary Key)라는 것을 의미
@GeneratedValue(strategy = GenerationType.IDENTITY)
// @ID와 함께 이용해서 식별키를 어떤 전략으로 이용할지 알려줌.
// 여기서는 기본키 생성 방식 자체를 데이터베이스에 위임하는 방식
//데이터베이스에 의존적인 방식
private Long bno;
private String title;
private String writer;
private String content;
@CreationTimestamp
private Timestamp regdate;
@UpdateTimestamp
private Timestamp updatedate;
// Timestamp들은 엔티티가 생성되거나 업데이트되는 시점의 날짜 데이터를 기록하는 설정이다.
}
5. org.zerock.domain 패키지에 Board 클래스를 작성하고, 인스턴스 변수들과 Lombok으로 생성할 코드들을 지정한다.
package org.zerock.persistence;
import org.springframework.data.jpa.repository.JpaRepository;
import org.zerock.domain.Board;
public interface BoardRepository extends JpaRepository<Board, Long>{
}
6. org.zerock.persistence 패키지를 추가하고, BoardRepository라는 인터페이스를 추가한다. 부모 인터페이스는 JpaRepository로 설정한다.
인터페이스를 통해서 동적으로 실행할 수 있는 클래스를 동적으로 생성한다.
package org.zerock.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.zerock.domain.Board;
import org.zerock.persistence.BoardRepository;
@RestController
public class BoardController {
@Autowired
private BoardRepository boardRepo;
// 자동으로 BoardRepository인터페이스와 연결된다.
@GetMapping("/insert")
public void insert() {
Board board = new Board();
board.setTitle("게시글 제목");
board.setContent("게시글 내용 넣기");
board.setWriter("user01");
//board에 들어갈 제목, 내용, 작성자이름이다.
boardRepo.save(board);
//board에 저장된다.
}
}
7. jpa_ex 스키마에 들어갈 내용들을 입력받는 클래스를 만들어준다.
8. Boot02-1을 Spring Boot App으로 시작한다.
9. 크롬에서 localhost:8080/insert로 실행을 한다. 실행 후 콘솔 창에 Hibernate: insert into tbl_boards (content, regdate, title, updatedate, writer) values(?,?,?,?,?)가 뜨면 성공한 것이다.
10. Database Development로 이동한 후 출력된 값을 확인한다.
'Spring_boot > Project' 카테고리의 다른 글
[Spring] Thymeleaf 동작 확인 (0) | 2021.08.08 |
---|---|
[Spring] Thymeleaf 사용하기 (0) | 2021.08.07 |
[Spring] 다양한 연관관계 처리 (0) | 2021.08.07 |
[Spring] Spring JPA 이용한 단순 게시물 처리 (0) | 2021.07.31 |
[Spring] Spring Tool Suite 4와 MySQL Workbench 8.0 연결방법(재업) (0) | 2021.07.27 |