본문 바로가기
공부/Java

#개인 프로젝트 2# 프로젝트 생성,MYSQL과 연결하기, Controller-View 연결

by 앙팡공기팡 2024. 11. 22.

(0) 스프링 프로젝트 생성하기

 

#1  프로젝트 생성

            IntelliJ 에서 프로젝트 생성, Spring initializr에서 생성으로 가능

            본 프로젝트는 Spring initializr에서 생성했다.

 

#2  Spring initializr

           링크 : https://start.spring.io/index.html

           각종 Builder와 Spring Boot 버전,Java 버전, Dependencies를 선택

           생성한 Jar 파일을 지정할 프로젝트 path에 압축해제 한다.

 

 (1)  MYSQL 서버와 프로젝트 연결하기

 

#1  MYSQL 설치 설정

 

            -링크: https://dev.mysql.com/downloads/installer/

            -1. MYSQL 서버를 설치 후 installer 실행

            -2. MYSQL 8.0 Command Line Client CLI 도구를 활용하여 root 계정의 비밀번호설정

            -3. “Create db db_name;”  쿼리를 활용하여 db를 생성하기

 

(2) 프로젝트와 Mysql 서버와 연결하기

  

- 1. 프로젝트의 resourcesapplication.properties 파일은 삭제하고 아래의 application.yml 파일을 생성

application.yml 생성한 DB 서버와 프로젝트간의 연결 정보를 담고있다.

# 서버 포트 설정
server:
port: 60000 // 프로젝트의 어플리케이션에 접근 시 필요 (localhost:60000) 

# database 연동 설정
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/[DB_name]?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
username: root  // root 계정 외 다른 계정 생성 시 다른 계정 사용 가능
password: 0000 // 계정의 pwd 입력
thymeleaf:
cache: false

# spring data jpa 설정 // ORM(Object-Relational Mapping)
jpa:
database-platform: org.hibernate.dialect.MySQL8Dialect
open-in-view: false
show-sql: true
hibernate:
ddl-auto: create

 

(3)  View template-Controller 연결해 페이지 생성

 

#1  Spring Boot 프로젝트의 구조

 

-Java Spring Boot 프레임워크 구조는 기본적으로 MVC 패턴이다.

           -

Model: Java의 메서드를 DB의 쿼리로 변환하여 수행한다.

-View: Controller에서 설정한 path에 클라이언트가 요청 시 연결된 html을 보여준다.

-Controller: pathView template를 연결하며, DB의 정보를 Model을 통해 html에 동적으로 전달한다.

 

#1  Controller 생성

 

           - 1. 프로젝트 package 하위에 Controller package를 생성한다.

           -2. 패키지 내 controller 클래스 생성

           -3. 클래스에 다음과 같은 Annotation을 추가한다.

@Controller // 이 클래스가 Controller 기능을 수행함

@RequiredArgsConstructor // 후에 있을 Service 클래스의 변수의 의존성을 부여한다.

@RequestMapping("/board") // Request의 path를 지정한다. 

           -4. 메서드를 추가한다.

      @GetMapping("/save") // 리퀘스트 메서드와 하위 path를 지정한다.
    public String saveForm()
{
    return "save"; // Thymeleaf를 통해 String을 리턴 시 String.html의 뷰템플릿과 연결된다.
}

 

           -5. 연결한 View template를 생성한다.

                      -Resources.templates save.html 파일 생성

                      -다음과 같은 내용으로 구성

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <title>save</title>

</head>

<body>

<!-- action속성: 목적지(서버주소), method속성: http request method(get, post) -->

<form action="/board/save" method="post"">

  writer: <input type="text" name="boardWriter"> <br>

  pass: <input type="text" name="boardPass"> <br>

  title: <input type="text" name="boardTitle"> <br>

  contents: <textarea name="boardContents" cols="30" rows="10"></textarea> 

  <input type="submit" value="글작성">
  
  <!—name: 이후 DTO 객체로 변환 시 매칭되어 변수에 저장 -->

</form>

</body>

</html>

 

 

- 참조: https://www.youtube.com/watch?v=YshcPPHClR4&list=PLV9zd3otBRt7jmXvwCkmvJ8dH5tR_20c0&index=1