스프링부트, 타임리프(Thymeleaf)로 파일게시판 만들기
#4 MySQL에서 Database 및 xml형식 Mapper 작성
이번에는 MySQL에서 Database와 Table을 생성하고 xml형식의 Mapper파일을 작성하겠습니다.
Database 생성
---(맥 사용자만)---
맥 사용자라면 MySQL서버를 작동시켜야 합니다. 저는 터미널에서 다음 명령어로 작동시키겠습니다.
Corini$ mysql.server start
입력하면 아래와 같이 정상적으로 진행됩니다.
Corini$ mysql.server start
Starting MySQL
. SUCCESS!
Corini$
---(끄읏)---
이제 다음 명령어로 여러분이 작업하고자 할 MySQL 계정으로 접속합니다. 저는 root계정으로 사용하며, 비밀번호가 없기에 바로 진행했습니다.
Corini$ mysql -u root -p [비밀번호입력]
Corini$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.18 Homebrew
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
MySQL 계정과 비밀번호를 틀리지 않고 잘 입력했다면 명령줄이 mysql> 로 바뀌면서 접속이 된 것을 확인할 수 있습니다. 이제 Database를 작성하겠습니다.
mysql> CREATE DATABASE thymeleaf_test DEFAULT CHARACTER SET UTF8;
입력이 성공했다면, 잘 입력이 되어있는지 조회해봅시다.
mysql> show databases;
mysql> CREATE DATABASE thymeleaf_test DEFAULT CHARACTER SET UTF8
-> ;
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test_crud |
| testdb |
| thymeleaf_crud |
| thymeleaf_test |
+--------------------+
8 rows in set (0.00 sec)
mysql>
이제 저는 thymeleaf_test 데이터베이스에 들어가서 테이블을 생성할겁니다. 데이터베이스 선택 명령어를 입력합니다.
mysql> use thymeleaf_test;
Database changed
이제 thymeleaf_test 데이터베이스로 작업실(?)을 옮겼습니다. 이전에 FileBoardVO.java 작성했던거 기억하시나요? 이 객체의 변수명과 동일하게 테이블 컬럼을 작성합니다. 오타에 주의하세요.
mysql> create table file_board(
-> b_no int primary key auto_increment,
-> title varchar(200),
-> content varchar(1000),
-> writer varchar(20),
-> reg_date datetime default current_timestamp
-> );
Query OK, 0 rows affected (0.01 sec)
그리고 테이블 상세정보를 확인해봅니다.
mysql> desc file_board;
mysql> desc file_board;
+----------+---------------+------+-----+-------------------+-------------------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------+------+-----+-------------------+-------------------+
| b_no | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(200) | YES | | NULL | |
| content | varchar(1000) | YES | | NULL | |
| writer | varchar(20) | YES | | NULL | |
| reg_date | datetime | YES | | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+----------+---------------+------+-----+-------------------+-------------------+
5 rows in set (0.00 sec)
mysql>
이제 Database 작업은 다 끝난 것 같죠? 는 아닙니다. 프로젝트 패키지에서 application.properties 파일에서 spring.datasource.url을 수정해줘야 합니다. 데이터베이스에 접속해야 하니 데이터베이스명을 추가해주어야 합니다. 그리고 시간설정도 추가로 작성합니다.
application.properties
MyBatis 작업
이제 쿼리문을 대신 실행해 줄 MyBatis작업을 하겠습니다. resources/mapper/에서 FileBoardMapper.xml파일을 생성합니다. 그리고 다음과 같이 작성합니다.
FileBoardMapper.xml
여기까지 잘 따라오셨나요? 오늘 작성한 파일의 패키지 구조를 확인하며, 이번 글은 여기서 마무리하겠습니다.
댓글