Spring boot에서 MySQL을 연동하는 방법을 포스팅하겠다.
신입 짜바리라 잘못된 방법일 수도 있으니 댓글을 부탁드립니다 ;_;
(추후 계속 수정하면서 추가할 내용들은 추가하고 수정할 내용들은 수정할 예정.)
1. dependency 추가
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
2. application.properties
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/스키마이름?serverTimezone=UTC&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=비밀번호
두번째 줄의 jdbc-url이 아닌 그냥 url로 입력시 에러가 날 수 있다.
이슈해결 카테고리에 써놓았긴 했지만 혹시 모르니 여기에도 언급은 해두겠다.
3. DataSourceConfig.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactory", transactionManagerRef = "transactionManager", basePackages = {"com.test.demo.repository.*" })
public class DataSourceConfig {
@Primary
@Bean(name = "dataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name = "entityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder, @Qualifier("dataSource") DataSource dataSource) {
return builder.dataSource(dataSource).packages("com.test.demo.domain.*").persistenceUnit("default").build();
}
@Primary
@Bean(name = "transactionManager")
public PlatformTransactionManager transactionManager(@Qualifier("entityManagerFactory") EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
}
|
8번째 줄의 prefix에 'spring.datasource'라고 입력이 되어져 있다.
2번의 application.properties에도 'spring.datasource.XXX = XXX'라고 적혀져있음을 확인할 수 있다.
이름을 맞추어야 한다!
이렇게까지 하면 Spring boot에서 MySQL을 연동이 된다.
이러한 방식으로 같은 프로젝트 내에 다른 스키마를 사용할 경우 설정이 가능한데 이는 나중에 포스팅 해보도록 하겠다.
그럼 이만!
'Backend > Spring' 카테고리의 다른 글
[Spring boot] Junit (0) | 2020.03.08 |
---|---|
[Spring boot] DBCP(DataBase Connection Pool) (0) | 2020.03.08 |
[Spring boot] 정적 리소스 사용 (0) | 2020.02.23 |
[Spring] @Pattern 체크 시 필수값이 아닐 때 (0) | 2020.02.23 |
[Spring boot] Spring boot에서 Thymeleaf 사용 (0) | 2020.02.23 |