졸업 프로젝트를 끝내고 제대로 공부를 해보기로 결정! "스프링부트 시작하기" 책을 보고 따라한 블로그가 있길래 나는 그 블로그를 보고 간단한 게시판을 만들어보고 추가로 원하는 기능을 더 개발할 생각이다!
일단 차근차근 써내려가 보려고 합니당
프로젝트 생성 전에 자바와 이클립스를 먼저 다운 받아야한다!
https://www.oracle.com/java/technologies/downloads/
여기에서 자바를 먼저 다운 받으면 된당!
단, 맥북 M1이면 무조건 자바 11버전 이상을 다운 받아야 함. 그 이하는 설치가 안됨.
https://www.eclipse.org/downloads/packages/
이클립스는 여기서 설치하면 됩니당.

이클립스에서 File -> New -> Other... 클릭

Spring Boot -> Spring Starter Project -> Next

프로젝트 셋팅을 해준다. Maven 으로 할까 생각도 했는데 요즘에 Gradle을 많이 사용한다 하여 그냥 하던거 하기로 했다! 이번에도 게시판을 만들어볼 예정이라...저기서 -1 이거는 빼도 됨!

필요한 라이브러리를 선택한다. 프로젝트 생성 후 추가로 넣을 수 있음!

src/main/resources 아래에 application.properties에 아래 코드 입력
spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.hikari.jdbc-url=jdbc:mysql://localhost:3306/board?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false
spring.datasource.hikari.username=사용자 아이디
spring.datasource.hikari.password=비밀번호
spring.datasource.hikari.connection-test-query=SELECT 1
localhost:3306/board? 이 부분에서 board는 데이터베이스 이름을 적어주면 됨
하기 전에 mysql에서 데이터베이스를 먼저 생성 해야함!
username은 mysql 사용자 아이디 ex)root
password는 mysql에서 설정했던 비밀번호를 넣으면 됨!

분명 board에 package를 만든건데 왜 저렇게 board 밖에 나왔는지는 모르겠음...
board.config 해야한다해서 저렇게 한건데 잘 된건지는 모르겠지만 일단 연동은 됐음!
저렇게 클래스도 만들어서
package board.configuration;
import javax.sql.DataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
@Configuration
@PropertySource("classpath:/application.properties")
public class DatabaseConfiguration {
@Bean
@ConfigurationProperties(prefix="spring.datasource.hikari")
public HikariConfig hikariConfig() {
return new HikariConfig();
}
@Bean
public DataSource dataSource() throws Exception {
DataSource dataSource = new HikariDataSource(hikariConfig());
System.out.println(dataSource.toString());
return dataSource;
}
}
요롷게 적는다.

실행 했을때 HikariDataSource (HikariPool-1) 이게 나오면 연동 성공!
앞에서 만든 DatabaseConfiguration 클래스를 수정한다.
package board.configuration;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
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.context.annotation.PropertySource;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
@Configuration
@PropertySource("classpath:/application.properties")
public class DatabaseConfiguraion {
@Autowired //여기
private ApplicationContext applicationContext;
@Bean
@ConfigurationProperties(prefix="spring.datasource.hikari")
public HikariConfig hikariConfig() {
return new HikariConfig();
}
@Bean
public DataSource dataSource() throws Exception {
DataSource dataSource = new HikariDataSource(hikariConfig());
System.out.println(dataSource.toString());
return dataSource;
}
@Bean //여기
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:/mapper/**/*Mapper.xml"));
return sqlSessionFactoryBean.getObject();
}
@Bean //여기
public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}

src/main/resources 아래에 mapper 폴더를 생성한다.
myBatis 연결 확인을 위해 test 코드를 작성하여 실행을 한다.

src/test/java 밑에 board 패키지 아래에 있는 BoardApplicationTests.java 클래스에 작성을 한다.
package board;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
@SpringBootTest
public class BoardApplicationTests {
@Autowired
private SqlSessionTemplate sqlSession;
@Test
public void contextLoads() {
}
@Test
public void testSqlSession() throws Exception {
System.out.println(sqlSession.toString());
}
}
spring boot에 JUnit5가 설치되어 있어 JUnit으로 테스트를 한다.
실행을 해보면

이렇게 나오는데 중간 아래쯤에 org.mybatis.spring.SqlSessionTemplate@38022758 이렇게 나오면 연결에 성공한 것이다!
MySQL 연동할 때 데이터베이스를 먼저 생성을 안해서 잠깐 헤맸는데 그래도 다행히 순탄하게 지나갈 수 있었고, 졸업작품은 완전 급하게 했어서 자세히 공부를 하지를 못했는데 이번에 myBatis를 써볼려고 해서 기대가 된다. 친구가 이게 매우 좋다고 했기 때문에 더 그럴지도?!