키보드워리어

[Database] Java - MySQL 연결 본문

개발 관련/Database

[Database] Java - MySQL 연결

꽉 쥔 주먹속에 안경닦이 2023. 4. 4. 14:01
728x90

안녕하세요 【키보드 워리어】

 

⌨🗡🧑


블로그 방문자 여러분, 안경닦이입니다.

 

오늘은 Mysql에 웹서버를 연결해보겠습니다.

 


1. MySQL 설치 및 연결 확인

먼저 MySQL을 설치한 후 다음과 같이 연결을 확인합니다. 설치할 때 설정한 비밀번호는 따로 작성하여 잊지 않도록 해야 합니다.

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

위와 같이 콘솔 답변이 나와야 합니다. 만약 나오지 않는다면 PATH 설정을 해주어야 합니다.

 

Path설정은 간단합니다.
참고. https://signature95.tistory.com/27

 

Mac OS mysql path 설정

mysql을 공부하려고 먼저 mysql을 설치하였는데, 이게 맥의 터미널에서는 path설정이 매우 복잡해서 여러 사이트를 찾아보았다. 참고한 사이트 https://devdotcode.com/how-to-add-mysql-to-the-path-in-mac-os/ How to a

signature95.tistory.com

 

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)

test 데이터베이스를 사용할 것이므로 다음과 같이 선택합니다.

 

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

 

 

 


3. Spring Boot 설정

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 테이블 생성

이제 @Entity 어노테이션을 사용하여 자바 코드로 작성한 todolist 테이블을 MySQL에 생성합니다. todolist 테이블은 test 데이터베이스에 생성되어 있어야 합니다.

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를 바꾸면 다시 run 해주셔야 합니다.

 

실행해 보고 터미널 콘솔에 아래 코드를 입력해 보면

결과를 확인해 볼 수 있습니다!

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

이는 MySQL GUI인 Workbench에서도 확인 가능합니다.

Mysql GUI workbench
Mysql GUI workbench

참고하시면 좋은 글

 
 
 

2022.08.03 - [개발 관련/Database] - 【SQLite】소개 및 간단한 기초 개념

 

【SQLite】소개 및 간단한 기초 개념

안녕하세요 【키보드 워리어】 블로그 방문자 여러분, 안경닦이입니다 오늘은 SQLite 에 대해 알아보겠습니다 SQLite SQLite는 MySQL나 PostgreSQL와 같은 데이터베이스 관리 시스템이지만, 서버가 아니

keyboardwarrior.tistory.com

https://keyboardwarrior.tistory.com/entry/%E3%80%90SQLite%E3%80%91select-where%EB%AC%B8-%EC%98%88%EC%A0%9C

 

【SQLite】select, where문 예제

안녕하세요 【키보드 워리어】 블로그 방문자 여러분, 안경닦이입니다. SQLite_select, where문 오늘은 SQLite_select, where문 을 살펴보겠습니다. 쿼리문에서 select문과 where문을 잘 섞어 조건문을 활용한

keyboardwarrior.tistory.com

https://keyboardwarrior.tistory.com/entry/%E3%80%90SQL%E3%80%91Group-by%EC%99%80-Order-by%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%B4%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%B6%94%EC%B6%9C%ED%95%B4%EB%B3%B4%EC%9E%90

 

【SQL】Group by와 Order by를 활용해서 데이터 추출해보자

안녕하세요 【키보드 워리어】 블로그 방문자 여러분, 안경닦이입니다. 오늘은 데이터베이스, sql 에 대해 작성합니다 저번에는 select문과 where문으로 다양한 데이터를 읽어보았는데요 여기에 추

keyboardwarrior.tistory.com

https://keyboardwarrior.tistory.com/entry/%E3%80%90SQLite%E3%80%91Left-inner%EB%A1%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EA%B0%80%EA%B3%B5%ED%95%B4%EB%B3%B4%EC%9E%90

 

【SQLite】left, inner문으로 테이블 합쳐보자

안녕하세요 【키보드 워리어】 ⌨🗡🧑 블로그 방문자 여러분, 안경닦이입니다. 오늘은 SQL에 대해 알아보겠습니다~ 지난번에 배우신 Group by와 Order by는 어떠셨나요? 아직 그룹핑과 정렬하는 법

keyboardwarrior.tistory.com

 

728x90