데이터베이스

01. MySQL - JAVA 연결

늦게 시작한 개발자 2022. 12. 27. 10:22

현재 프로젝트를 진행하고 있는 상황이다. 따릉이 여행프로그램

2022년 12월 26일 처음으로 MySQL을 설치하게 되었다. 해당 프로그램 말고도 Oracle도 있고 mariaDB도 존재하고 H2도 있는데 현재 프로젝트에서는 MySQL을 활용하기로 했다.

이유는 우선 Oracle의 경우 무게감이 있다는 이야기를 많이 들었고 돈도 내야하지만 주로 기업에서 활용하는 제품이라고 한다.

다운로드는 아래 링크를 통해서 다운 받는다.

https://dev.mysql.com/downloads/installer/

 

MySQL :: Download MySQL Installer

Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.31 5.5M (mysql-installer-web-community-8.0.31.0.msi) MD5: 7a83203e24f873b49fa2df2f1a58eca6 | Signatu

dev.mysql.com

설치과정은 아래의 블로그를 활용하였다.

https://hongong.hanbit.co.kr/mysql-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%EB%B0%8F-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0mysql-community-8-0/

 

MySQL 다운로드 및 설치하기(MySQL Community 8.0)

SQL을 본격적으로 사용하려면 DBMS를 설치해야 합니다. 여러 가지 DBMS 중에서 MySQL 설치 하는 방법을 알아보고, 정상적으로 설치가 되었는지 확인하는 방법을 알아보겠습니다. 2021년 10월 기준 MySQL

hongong.hanbit.co.kr

위와 같이 설치를 하게 되었다면, 연결을 잡아야한다.

 

기존에 H2를 활용하였을 당시에는 JPA 부분 첫문장에 H2를 활용한다고 명시되어 있는 것을 주석처리 하였고 기존 H2 또한 주석처리를 하고 진행하였다.

우선 application.properties에 코드를 입력해 줘야 한다.

[위치 : \Seoul_Public_Bike_project\bike\src\main\resources\application.properties]

# DATABASE
# spring.h2.console.enabled=true
# spring.h2.console.path=/h2-console
# spring.datasource.url=jdbc:h2:~/test
# spring.datasource.driverClassName=org.h2.Driver
# spring.datasource.username=sa
# spring.datasource.password=

# Mysql
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/SEOUL_PUBLIC_BIKE_PROJECT?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=0000

# JPA
# spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.show_sql=true

주의 해야할 점은 spring.datasource.url= 부분에서 위치를 설정해야 하는 상황인데 현재는 로컬 호스트를 통해 진행하게 되는데, 3306은 MySQL 설정했을 포트 번호다. 아마도 나중에 배포를 하게 되면 주소를 변경해야 하는데 SEOUL_PUBLIC_BIKE_PROJECT에서 이전에 site로 입력했던 것을 보았다. 아마 배포한 주소로 연결한 것이 아닌가 싶다. 현재는 로컬로 하는 것이기 때문에 해당 SQL 파일명 주소로 입력을 해서 진행한다. 나머지 뒤의 문장은 나중에 공부해보도록 하자.

 

두번째는 build.gradle에서 코드를 입력해야 한다.

dependencies 내에 아래의 코드를 입력해줘야 한다.

	runtimeOnly 'com.h2database:h2' // H2
	implementation 'mysql:mysql-connector-java' // mysql

위의 두개 모두 DataBase 인데 우리가 사용할 것은 MySQL이기 때문에 두개를 충돌하지 않도록 하기 위해서 runtimeOnly를 반드시 주석 처리를 해줘야 한다.

1-1 MySQL 입력

참고로 우선 CREATE DATABASE SEOUL_PUBLIC_BIKE_PROJECT; 입력을 가장 먼저 해줘야 한다.

이유는 JAVA환경에서는 먼저 데이터베이스 SQL 파일이 없었기 때문이다.

그러고 난 뒤에 application.properties / build.gradle 두개의 코드를 설정해주는 것이 좋다.

테이블은 생성하였기 때문에 [USE/sql명] 을 입력으로 현재의 데이터베이스를 사용하겠다고 입력을 해준다.

이렇게 된다면, JAVA환경에서 어떠한 LOMBOK을 통해 자동으로 컬럼이 설정되어 있기 때문에 MySQL에 따로 설정을 넣어줄 필요가 없다.

SHOW TABLES를 통해 현재 어떠한 컬럼들이 있는지 확인이 가능하다.

1-2  SHOW TABLES

현재 2022년 12월 27일 자로 site_user에서만 회원 입력 부분이 명시되어 활용하고 있기 때문에 해당 컬럼을 select * from site_user;를 하면 

1-3 select * from site_user;

위와 같이 현재 배포중인 로컬호스트에서 가입한 회원정보를 자동으로 테이블 컬럼내에 생성되어 있는 것을 확인할 수 있다.