Vue.js SpringBoot + MyBatis

조이·2021년 4월 20일
0

Vue.js

목록 보기
1/3

참조

  1. https://velog.io/@ghd64845/Spring-boot-MyBatis%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-MySQL-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0
  2. https://taetaetae.github.io/2019/04/21/spring-boot-mybatis-mysql-xml/
  3. https://antdev.tistory.com/30
  4. https://dev-overload.tistory.com/27
  5. application.properties
    https://parandol.tistory.com/17

방법 1.

1. DB 연결 정보 등록

/src/main/resources/application.properties

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/
spring.datasource.username=아이디
spring.datasource.password=비밀번호

기존스프링코드는아래와같다

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
     <property name="url" value="jdbc:mysql://localhost:3307/board"></property>
     <property name="username" value="root"></property>
     <property name="password" value="root"></property>
</bean>

2. MyBatis 연동

sql 매퍼들이 위치하는 경로, Mybatis 설정경로 지정한다.

@Configuration
@MapperScan(basePackages = "kr.co.example" )
public class MybatisConfiguration {
	@Bean
	public SqlSessionFactory sqlSessionFactory(@Autowired DataSource dataSrouce, ApplicationContext applicationContext) throws Exception{
		SqlSessionFactoryBean factoryBean= new SqlSessionFactoryBean();
		factoryBean.setDataSource(dataSrouce);
		factoryBean.setMapperLocations(applicationContext.getResources("classpath:mybatis/sql/*.xml"));
		SqlSessionFactory factory = factoryBean.getObject();
		factory.getConfiguration().setMapUnderscoreToCamelCase(true);
		return factoryBean.getObject();
		
	}
	
	@Bean
	public SqlSessionTemplate sqlSessionTemplate(@Autowired SqlSessionFactory sqlSessionFactory) {
		return new SqlSessionTemplate(sqlSessionFactory);
	}
}

기존스프링코드는아래와같다

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <property name="typeAliasesPackage" value="model"></property>
    <property name="mapperLocations" value="classpath*:dao/mapper/**/*.xml"></property>
</bean>
    
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>

Mapper 및 Repository 생성

이후 생략
기존 스프링과 동일하다.

방법 2

application.properties 에 전부 설정하는 방법

spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/
spring.datasource.username=아이디
spring.datasource.password=비밀번호

logging.config=src/main/resources/logback-spring.xml

logging.level.com.andy=trace


# 매핑할 모델의 패키지 경로 (mybatis 매핑 type을 짧게 쓰기 위한 설정) 
mybatis.type-aliases-package=com.example.vo
# mapper.xml 위치 명시 
mybatis.mapper-locations=classpath:mybatis/sql/*.xml

# model 프로퍼티 camel case 설정
mybatis.configuration.map-underscore-to-camel-case=true

SpringBootApplicaion 에 MapperScan 추가

@MapperScan(basePackageClasses = ExampleSpringApplication.class)
@SpringBootApplication
public class ExampleSpringApplication {

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

}

0개의 댓글