안녕하세요.
오늘은 스프링 프로젝트를 하면서 mysql과 연결을 하고 싶은데
설정에 대해서 서투른 분들을 위해 간단한 설명과 소스로 공유드립니다.
전체적으로 소스에 설명을 달아 놨으니 이해하기 쉬우실 겁니다.
1. build.gradle에 dependencies를 추가합니다.
추가 후 gradle refresh를 해줍니다.
1
2
3
4
5
6
7
8
|
runtimeOnly 'mysql:mysql-connector-java'
/* Mybatis */
compile group: 'org.mybatis', name: 'mybatis', version: '3.5.1'
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
2. 우선 패키지 경로를 생성하고 리소스의 경로도 생성 해줍니다.
3. Config를 설정 해줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
@Configuration
@Lazy
@EnableTransactionManagement
// Interface(mapper)가 있는 package 경로
@MapperScan(basePackages= "com.example.test.api.dao")
public class DatabasConfig {
/**
* Session Factory 설정
*/
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
// 리졸버에 등록된 패키지 하위의 dao 클래스를 스캔합니다.
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
// 오른쪽에 있는 리소스 경로에 들어감(src/main/resources)
sessionFactory.setMapperLocations(resolver.getResources(
// 실제 쿼리가 들어갈 xml 패키지 경로
"com/example/test/api/dao/mapper/*Mapper.xml"
));
// Value Object를 선언해 놓은 package 경로
sessionFactory.setTypeAliasesPackage( "com.example.test.api.vo" );
return sessionFactory.getObject();
}
/**
* Mybatis template 설정
*/
@Bean
public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) throws Exception {
SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory);
// underscore를 camelCase로 매칭 : 예) user_id -> userId
sqlSessionTemplate.getConfiguration().setMapUnderscoreToCamelCase(true);
// Insert시 생성되는 pk를 bean으로 반환
sqlSessionTemplate.getConfiguration().setUseGeneratedKeys(true);
return sqlSessionTemplate;
}
/**
* 트랜잭션 매니저 설정
*/
@Bean(name = "transactionManager")
public PlatformTransactionManager transactionManager(@Qualifier("dataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
4. application.propertis에 접속 정보를 적어줍니다.
1
2
3
4
5
6
7
8
9
10
11
|
# jdbc connect
# 포트 뒤에 test의 경우는 db scheme 입니다. (scheme)
spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=UTF8
spring.datasource.username=test
spring.datasource.password=test
spring.datasource.validationQuery="SELECT 1"
spring.datasource.testOnBorrow="true"
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
위와 같이 4개의 작업을 하시면 정상적으로 mysql jdbc connection이 됩니다.
감사합니다.
[ lombok, springboot ] 스프링부트에 lombok 롬복 설정방법 & 설명 &연결방법 (0) | 2020.02.11 |
---|---|
[ springboot ] 스프링부트 스케쥴러 설정방법 & 예제 (0) | 2020.02.10 |
[ 스프링부트 ] 스프링부트 커스텀 태그라이브러리 소스 및 설명(간단) (0) | 2020.02.04 |
스프링부트(SpringBoot) 로그(Log)설정 (0) | 2018.06.25 |
스프링부트(Spring Boot) tiles 설정방법 (2) | 2018.04.12 |