본문 바로가기
프로젝트/게시판

[SpringBoot] 게시판 2. Spring Starter Project 프로젝트 생성, 데이터베이스 설정(MariaDB, MyBatis)

by qkzkdo 2023. 7. 30.
728x90

*Spring Tool Suite 4 사용

 

1. Spring Starter Project 프로젝트 생성

File에서 Spring Starter Project를 클릭해 준다

 

프로젝트 설정 정보(기본 게시판만 생성할 것이기 때문에 최소로 설정하였다)

  • 자바 17 버전
  • War패킹
  • 스프링부트 2.7.14 버전
  • DB는 MariaDB와 MyBatis
  • Thymeleaf 템플릿 엔진

 

*Spring Starter Project의 장점은 프로젝트 생성 시 Dependency를 선택해주기만 하면 자동으로 설정이 된다는 것이다

 

Finish를 클릭하면 아래와 같이 프로젝트가 생성된다

 

build.gradle 파일을 클릭하면 프로젝트 생성 시 선택했던 버전정보와 Dependency들이 자동으로 추가되어 있다.

 

 

2. 데이터베이스(MariaDB) 연결과 MyBatis 설정

resources 파일에 application.properties 파일에서 DB 설정을 할 수 있다.

 

tomcat.apache.org DB 설정 정보를 확인할 수 있다.

https://tomcat.apache.org/tomcat-9.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_2_Example

MariaDB는 MySQL과 호환되기 mysql부분을 mariadb로 바꿔주기만 하면 된다.

spring.datasource.hikari.jdbc-url=jdbc:mariadb://localhost:3306/DB이름
spring.datasource.hikari.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.hikari.username=아이디
spring.datasource.hikari.password=비밀번호

mybatis.configuration.map-underscore-to-camel-case=true

차례대로 JDBC-URL, 드라이버 클래스 이름, 데이터베이스에 접속할 사용자 이름, 사용자 비밀번호를 입력해 준다.

사용할 데이터베이스에 따라 내용만 바꿔주면 된다.

 

underscore-to-camel-case : 데이터베이스에서 언더스코어(_)가 들어간 컬럼을 자바 클래스의 카멜표기법 필드와 매핑해 주는 설정이다.

ex. board_no ↔ boardNo

 

 

3. Config 파일 설정

http://mybatis.org/spring/getting-started.html

MyBatis 공식문서 참고해서 작성해주면 된다

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
@Configuration
public class MybatisConfig {

	@Bean
	DataSource dataSource() {
		return new HikariDataSource(hikariConfig());
	}
	
	private final ApplicationContext application;
	
	@Bean
	@ConfigurationProperties(prefix ="spring.datasource.hikari")
	HikariConfig hikariConfig() {
		return new HikariConfig();
	}
	
	@Bean
	public SqlSessionFactory sqlSessionFactory() throws Exception {
		SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
		factoryBean.setDataSource(dataSource());
		
		//mapper.xml 사용
		String locationPattern = "classpath:/mapper/*-mapper.xml";
		Resource[] mapperLocations = application.getResources(locationPattern);
		factoryBean.setMapperLocations(mapperLocations);		
		
		factoryBean.setConfiguration(mybatisConfiguration());
		return factoryBean.getObject();
	}

	@ConfigurationProperties(prefix = "mybatis.configuration")
	@Bean
	org.apache.ibatis.session.Configuration mybatisConfiguration() {
		return new org.apache.ibatis.session.Configuration();
	}
	
	@Bean
	public SqlSessionTemplate sqlSession() throws Exception {
		return new SqlSessionTemplate(sqlSessionFactory());
	}
}

config파일 설정 후 실제로 mapper패키지까지 만들어주면 설정완료. 프로젝트가 정상적으로 실행 된다.

 

728x90