스프링

Yohan·2025년 1월 8일
0

코딩기록

목록 보기
157/157

Mybatis와 Spring을 통합하여 DB와의 연결 설정

  • main 메소드 부분
package com.bit.board;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;

@SpringBootApplication
public class BoardApplication {

	public static void main(String[] args) {
		SpringApplication.run(BoardApplication.class, args);
	}

	// sqlSessionFactory: 데이터베이스와의 연결과 SQL의 실행에 대한 모든 것을 가진 객체
	// -> 이 객체가 DataSource를 참조하여 MyBatis와 Mysql 서버를 연동시켜준다.
	@Bean // Spring한테 특정 클래스 객체의 생성/소멸을 맡긴다.
	public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
		SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
		sqlSessionFactoryBean.setDataSource(dataSource); // DB 연결에 필요한 정보를 로딩
		sqlSessionFactoryBean.setConfigLocation(new ClassPathResource("mybatis/config.xml")); // mybatis 설정 파일 로딩
		Resource[] resources = new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mappers/*.xml");
		sqlSessionFactoryBean.setMapperLocations(resources);

		return sqlSessionFactoryBean.getObject();
	}

	@Bean
	public SqlSession sqlSession(SqlSessionFactory sqlSessionFactory) {
		return new SqlSessionTemplate(sqlSessionFactory);
	}
}
  • dataSource 매개변수는 데이터베이스 연결 정보를 제공하는 객체
  • setConfigLocation 메서드는 MyBatis 설정 파일(mybatis/config.xml)의 위치를 지정
  • setMapperLocations 메서드는 MyBatis Mapper XML 파일의 위치를 지정하여 SQL 쿼리를 정의한 XML 파일들을 로드
  • SqlSession은 MyBatis에서 SQL 쿼리를 실행하고 결과를 처리

applcation.properties 설정

spring.application.name=board
# DataBase Settings
spring.datasource.url=jdbc:mysql://localhost:3306/board
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=1234
# JSP Settings
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
server.servlet.jsp.init-parameters.development=true
# Mybatis Settings
mybatis.mapper-locations=classpath:/mybatis/mappers/*.xml
mybatis.config-location=classpath:/mybatis/config.xml
  • DB, JSP, MyBatis 등 세팅 진행
  • classpath는 resources 폴더를 의미

User

  • @Data : lombok 라이브러리의 요소중 하나로, Getter, Setter, ToString, Equals 등을 모두 포함
profile
백엔드 개발자

0개의 댓글