MySQL과 Spring Boot 연결

王林
풀어 주다: 2024-07-18 11:05:19
원래의
1058명이 탐색했습니다.

안녕하세요 여러분,

이 튜토리얼에서는 프런트엔드용 API를 생성하기 위해 Spring Boot를 MySQL과 연결하기 위해 따라야 할 프로세스를 설명합니다.

전제 조건:

  • IDE(저는 Intellij IDEA를 사용하므로 이 튜토리얼은 이를 기반으로 작성됩니다)

  • MySql 워크벤치

소스코드를 보려면 여기를 클릭하세요.

Spring 초기화를 사용하여 Spring Boot 프로젝트 만들기

start.spring.io를 방문하여 다음을 선택하세요.
프로젝트: 메이븐
언어: 자바
스프링 부트: 3.3.0
콘텐츠에 필요한 필드를 작성하세요
포장: JAR
자바: 17

종속성의 경우 다음이 필요합니다.

  • MySQL 드라이버

  • 스프링웹

  • 스프링 데이터 JPA

이후 초기화 프로그램은 다음과 같아야 합니다.

Image description

생성을 클릭하고 원하는 경로에 폴더를 저장한 후 폴더 내용을 추출하세요.

Intellij 및 MySQL 구성

먼저 MySQL에서 데이터베이스를 생성합니다. 이를 위해 MySQL Workbench를 사용했습니다.

가장 단순한 데이터베이스라도 다음과 같이 작동합니다.

Image description

원하는 IDE에서 폴더의 콘텐츠를 엽니다. Intellij IDEA를 사용하여 이 튜토리얼을 다루겠습니다.

scr/resources/application.properties에 있는 application.properties 파일을 엽니다

이 파일에서는 데이터베이스 연결에 도움이 되는 설정을 구성합니다.

파일에 다음 설정을 작성하세요.

Image description

${DB_NAME}, ${DB_USER}, ${DB_PASSWORD}를 데이터베이스 자격 증명으로 바꾸세요.

이러한 설정은 우리가 만든 데이터베이스에 연결하는 데 도움이 됩니다.

spring.jpa.show-sql=true:

로그인 후 복사

이를 통해 Hibernate에서 생성된 SQL 문을 로깅할 수 있습니다. true로 설정되면 Hibernate는 SQL 문을 콘솔에 인쇄합니다.

spring.jpa.hibernate.ddl-auto=update:

로그인 후 복사

이 설정은 엔터티 정의와 일치하도록 데이터베이스 스키마를 자동으로 업데이트하는 데 사용됩니다. 값 업데이트는 Hibernate가 기존 스키마를 업데이트하여 엔터티 매핑에 필요한 새 열이나 테이블을 추가한다는 것을 의미합니다.

logging.level.org.hibernate.SQL=DEBUG:

로그인 후 복사

이는 Hibernate SQL 로거의 로깅 수준을 DEBUG로 설정합니다. 실행 중인 SQL 문에 대한 자세한 정보를 제공합니다.

logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE:

로그인 후 복사

이는 Hibernate 유형 설명자 SQL 바인더의 로깅 수준을 TRACE로 설정합니다. 이는 SQL 문의 매개변수 바인딩에 대한 자세한 정보를 기록합니다.

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver:

로그인 후 복사

MySQL용 JDBC 드라이버 클래스 이름을 지정합니다. 이는 데이터베이스 연결을 설정하는 데 사용할 드라이버를 Spring Boot에 알려줍니다.

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect:
로그인 후 복사

이것은 Hibernate 언어를 MySQL에 최적화된 MySQLDialect로 설정합니다. 이를 통해 Hibernate는 MySQL과 호환되는 SQL 문을 생성할 수 있습니다.

이제 프로젝트의 기본 패키지에 하위 패키지를 만들고 이름을 "모델"로 지정하세요. 내부에서 원하는 대로 이름을 지정하는 클래스를 생성하세요. 제 경우에는 Users라고 부르겠습니다.

package com.evaluation.evaluationSystem.model;

import jakarta.persistence.*;

@Entity
@Table(name = "users")
public class Users {
    public Long getId() {
        return id;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Column(name = "email")
    private String email;

    @Column(name = "password")
    private String password;

    public void setId(Long id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
로그인 후 복사

이 파일에서는 데이터베이스 테이블 사용자에 매핑될 JPA 엔터티 사용자를 정의합니다. 클래스에는 사용자 테이블의 열에 해당하는 ID, 이메일 및 비밀번호 필드가 포함되어 있으므로 해당 필드가 데이터베이스 열과 일치하는지 확인하세요.

계속해서 "controller"라는 또 다른 하위 패키지를 만들고 그 안에 파일을 만듭니다.

package com.evaluation.evaluationSystem.controller;

import com.evaluation.evaluationSystem.model.Users;
import com.evaluation.evaluationSystem.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;

@RestController
public class UsersController {
    @Autowired
    private UserRepository userRepository;

    @GetMapping("/users")
    public List<Users> getUsers(@RequestParam("search") Optional<String> searchParam){
        return searchParam.map(param -> userRepository.getContainingQuote(param))
                .orElse(userRepository.findAll());
    }
}

로그인 후 복사

이 파일에서는 검색 매개변수를 기반으로 사용자 엔터티를 선택적으로 필터링할 수 있는 RESTful API 엔드포인트(/users)를 정의합니다. 데이터베이스 상호작용을 위해 UserRepository를 활용하고 @RestController 주석으로 인해 결과를 JSON 형식으로 반환합니다. "/users"를 원하는 엔드포인트로 바꾸세요.

repository라는 하위 패키지를 하나 더(마지막 것) 생성하고 파일 인터페이스를 생성합니다(클래스가 아닌 주의).

package com.evaluation.evaluationSystem.repository;

import com.evaluation.evaluationSystem.model.Users;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;

public interface UserRepository extends JpaRepository<Users, Long> {
    @Query("SELECT u FROM Users u WHERE u.email LIKE %:word%")
    List<Users> getContainingQuote(@Param("word") String word);
}
로그인 후 복사

이 파일에서는 데이터베이스에서 데이터를 검색할 수 있는 쿼리를 정의합니다. 필요에 따라 편집하세요. 이 쿼리는 JPQL(Java Persistence Query Language)을 사용하여 작성합니다. JPA(Java Persistence API) 사양의 일부로 정의된 쿼리 언어로, Java 개체 및 엔터티에 대한 데이터베이스 작업을 수행하는 데 사용됩니다.

마지막 폴더 구조는 다음과 같습니다.

Image description

이제 기본 파일(제 경우에는 EvaluationSystemApplication)로 이동하여 프로젝트를 실행합니다. 모든 것이 제대로 작동하면 localhost:8080/users(또는 선택한 엔드포인트)를 방문하면 데이터베이스의 데이터가 표시됩니다. 데이터 테이블을 일부 콘텐츠로 채워야 합니다.

결론

이 튜토리얼이 도움이 되었기를 바랍니다. 나 역시 이런 환경이 낯설기 때문에 나도 배운다. 모든 의견과 제안을 환영합니다!

Spring Boot, MySQL 및 React를 사용하여 풀 스택 웹 앱을 개발하기 위한 나의 여정에 대한 최신 소식을 받으려면 내 GitHub 계정에 자유롭게 팔로우하세요!

위 내용은 MySQL과 Spring Boot 연결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!