(데이터베이스) Java – MySQL 연결

안녕하세요 【키보드맨】


친애하는 블로그 방문자 여러분, 저는 안경 세척제입니다.

오늘은 웹 서버를 Mysql에 연결합니다.


1. MySQL 설치 및 연결 확인

MySQL을 설치한 후 다음과 같이 연결 상태를 확인합니다. 설치 시 설정한 비밀번호는 잊어버리지 않도록 별도로 작성해야 합니다.

$ mysql --version
mysql  Ver 8.0.32 for macos13 on x86_64 (MySQL Community Server - GPL)

위와 비슷한 콘솔 응답을 받아야 합니다. 그렇지 않은 경우 PATH를 구성해야 합니다.

경로 설정은 간단합니다.
인용하다. https://signature95./27

Mac OS mysql 경로 설정

mysql을 공부하려고 처음에 mysql을 설치했는데 이게 맥단말기에서 굉장히 복잡한 경로설정이라 여러사이트를 찾았습니다.참조 사이트 https://devdotcode.com/how-to-add-mysql-to-the-path-in-mac-os/ 방법

signature95.

2. MySQL 데이터베이스 설정

MySQL에 로그인하고 다음과 같이 데이터베이스를 봅니다.

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 67
Server version: 8.0.26 MySQL Community Server - GPL

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| test               |
+--------------------+
6 rows in set (0.00 sec)

테스트 데이터베이스를 사용할 것이므로 다음을 선택합니다.

mysql> use test;
//create test;
//없다면 아래처럼 만들어주세요

3. 스프링 부트 구성

MySQL 데이터베이스에 연결하기 위해 Application.properties 파일을 다음과 같이 설정합니다.

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username= 유저아이디
spring.datasource.password= 유저비밀번호
spring.jpa.show-sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect

localhost:3306은 mysql 로컬 호스트 번호입니다.

pom.xml 파일도 구성합니다.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.24</version>
</dependency>

잘 되었는지 확인해볼까요?

4. MySQL 테이블 생성

이제 Java 코드로 작성된 @Entity 주석을 사용하여 MySQL에서 todolist 테이블을 생성합니다. todolist 테이블은 테스트 데이터베이스에 생성되어 있어야 합니다.

package com.myself.todolist;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.time.LocalDate;

@Entity
@Table(name = "todolist") // 테이블 이름
public class ToDoList {

    @Id
    @GeneratedValue
    private long id; // id 값 부여

    @NotNull // 빈값 X
    private LocalDate date;

    @NotNull // memo size 지정
    @Size(min = 1, max = 50)
    private String memo;

    public ToDoList() {
        // 기본 생성자
    }

    public ToDoList(LocalDate date, String memo) {
        this.date = date;
        this.memo = memo;
    }

    public long getId() {
        return id;
    }

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

    public LocalDate getDate() {
        return date;
    }

    public void setDate(LocalDate date) {
        this.date = date;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }
}

pom.xml,

application.properties를 변경하면 다시 실행해야 합니다.

실행하고 터미널 콘솔에 다음 코드를 입력하면,

결과를 볼 수 있습니다!

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| todolist       |
| todolist_seq   |
+----------------+

이는 MySQL GUI Workbench에서도 확인할 수 있습니다.


MySQL GUI 워크벤치
MySQL GUI 워크벤치

error: Content is protected !!