[CSBlog] MyBatis와 DB 연동하기

MyBatis & SQL MAPPER 를 공부하기 위한 목적으로, 간단한 블로그 시스템을 만들어 보려고 한다😊

데이터를 접근하기 위한 기술에는 JDBC, JDBC Template, SQL Mapper, ORM 등 여러가지가 있지만 이번 토이 프로젝트에서는 SQL Mapper 를 사용할 예정이다.

지금까지는 ORM & JPA 만 사용했었는데 SQL Mapper & MyyBatis 를 사용하면, 백엔드 동작을 명확하게 이해할 수 있고 SQL 에 대한 연습을 더 깊게 할 수 있다고 한다!


🏷 Maven 의존성 설치하기

Maven 은 자바 프로젝트에서 사용되는 빌드 자동화 도구로, 프로젝트 구성 및 빌드 관리와 라이브러리 의존성 관리의 역할을 한다.

pom.xml 파일을 수정해야 하는데 이는 Maven이 프로젝트를 빌드하기 위해 필요한 정보를 기술하는 XML 파일이다.

  • 프로젝트의 정보
  • 프로젝트가 필요로 하는 라이브러리 의존성 정보
  • 빌드 단계에서 사용되는 정보
<project>
	<groupId>com.codepresso</groupId>
	<artifactId>simple-blog</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>simple-blog</name>
	<description>simple-blog Exercise Project</description>
	<properties>
		<java.version>11</java.version>
	</properties>
</project>

<project> 태그로 시작되며 간단하게는 위와 같은 형식을 가진다.


<!--		Mybatis-->
<dependency>
  	<groupId>org.mybatis.spring.boot</groupId>
  	<artifactId>mybatis-spring-boot-starter</artifactId>
  	<version>1.3.1</version>
</dependency>
<dependency>
 	<groupId>org.mybatis</groupId>
	<artifactId>mybatis-spring</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
  	<groupId>org.mybatis</groupId>
  	<artifactId>mybatis</artifactId>
  	<version>3.5.3</version>
</dependency>

pom.xmlMyBatis 를 위한 의존성을 추가한다.


🏷 H2 Database 의존성 설치하기

H2 Database 는 RDBMS 중 하나로 개발 단계에서 테스트용으로 가볍게 활용할 수 있다.

또한 별도의 설치 없이 Maven 의존성만으로 스프링 부트에서 쉽게 활용 가능하다.

<dependency> 
  	<groupId>com.h2database</groupId>
  	<artifactId>h2</artifactId>
  	<version>1.4.200</version>
</dependency>

pom.xmlH2 Database 를 위한 의존성을 추가한다.


spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:blog
spring.datasource.username=sa
spring.datasource.password=

application.propertiesH2 Database 의 url 및 계정 정보, 웹 콘솔 정보를 설정한다.


🏷 스키마 생성하기

Spring 프로젝트의 resources 디렉토리 하위에 스키마 파일을 생성한다.

schema.sql

drop table if exists comment CASCADE;
create table user_comment(
                             id bigint generated by default as identity,
                             post_id bigint not null,
                             user_name varchar(30) not null,
                             content varchar(300) not null,
                             reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP not null,
                             primary key (id)
);

drop table if exists member CASCADE;
create table member(
                       id bigint generated by default as identity,
                       user_name varchar(30) not null,
                       age int not null,
                       primary key (id)
);

drop table if exists post CASCADE;
create table post(
                     id bigint generated by default as identity,
                     user_name varchar(30) not null,
                     title varchar(50) not null,
                     post_content varchar(300) not null,
                     reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP not null,
                     updt_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP not null,
                     primary key (id)
);

간단하게 글을 작성하기 위한 post 테이블, 댓글 등록을 위한 user_comment 테이블, 회원 관리를 위한 member 테이블을 생성했다.


애플리케이션을 실행시키고 http://localhost:8080/h2-console 에 접속하여 H2 Database 콘솔을 확인하면,
schema.sql 의 SQL문이 자동으로 실행되어 3개의 테이블이 만들어진 것을 확인할 수 있다👍🏻

좋은 웹페이지 즐겨찾기