스프링 부트 - DBCP, MariaDB 연동하기
DBCP
- DBCP(Database Connection Pool) : DataBase와 Connection을 맺고 있는 객체를 관리하기 위한 Connection
- DB와 연결된 커넥션(connection)을 미리 생성해서 풀(pool)속에 저장해두고 있다가 필요할 때 가져다 쓰고 반환한다.
- 미리 생성해두기 때문에 데이터베이스에 부하를 줄이고 유동적으로 연결을 관리할 수 있다.
- DBCP는 애플리케이션의 성능에 큰 영향을 미친다.
- 스프링 부트는 HikariCP를 기본 DBCP로 사용한다.
MariaDB 연동
MariaDB는 설치가 되어있다고 가정하고 진행한다.
의존성 추가(MariaDB)
1
2
3
4
5
6
7
8
9<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
appication.properties
1
2
3
4
5
6
7
8
9
10# 커넥션 객체의 최대 수를 4개로 설정하겠다는 의미
4 =
org.mariadb.jdbc.Driver =
# database명이 springboot이다.
jdbc:mariadb://localhost:3307/springboot =
# 자신의 userid (루트 계정이라면 root)
userid =
# 자신의 password
password =SpringbootjdbcApplication.java
1
2
3
4
5
6
7
8
public class SpringbootjdbcApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootjdbcApplication.class, args);
}
}MariaDBRunner.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
public class implements ApplicationRunner {
DataSource dataSource;
JdbcTemplate jdbcTemplate;
public void run(ApplicationArguments args) throws Exception {
try(Connection connection = dataSource.getConnection()){
System.out.println(dataSource.getClass()); // 어떤 DBCP를 사용하는지 확인
System.out.println(connection.getMetaData().getURL());
System.out.println(connection.getMetaData().getUserName());
Statement statement = connection.createStatement();
String sql = "CREATE TABLE USER(ID INTEGER NOT NULL, name VARCHAR(255), PRIMARY KEY (id))";
statement.executeUpdate(sql);
}
jdbcTemplate.execute("INSERT INTO USER VALUES (1, 'kwon')");
}
}MySQL Client (MariaDB 10.4 (x64))
를 사용하여 접속하여 확인하면 다음과 같이 생성한 테이블과 삽입한 행을 확인할 수 있다.
참조
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard