인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다.
h2 사용법
인메모리 데이터베이스 h2 를 사용하는 법을 알아보자.
1) dependency
추가
pom.xml
에 h2
와 spring-boot-starter-data-jdbc
라이브러리를 추가한다.
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
2) DataSource
와 Connection
로 연동하기
ApplicationRunnner
로 DB에 데이터를 넣어보는 프로그램을 실행시켜보자.
먼저 DataSource
로 부터 Connection
을 받아와 DB 연산을 수행할 수 있다.
@Component
public class H2Runner implements ApplicationRunner {
@Autowired
DataSource dataSource;
@Override
public void run(ApplicationArguments args) throws Exception {
try(Connection connection = dataSource.getConnection()) {
Statement statement = connection.createStatement();
String sql = "CREATE TABLE USER(ID INTEGER NOT NULL, name VARCHAR(255), PRIMARY KEY (id))";
statement.executeUpdate(sql);
}
}
}
3) JdbcTemplate
으로 연동하기
또는 jdbc
를 이용해 더 편하게 이용할 수도 있다.
@Component
public class H2Runner implements ApplicationRunner {
@Autowired
JdbcTemplate jdbcTemplate;
@Override
public void run(ApplicationArguments args) throws Exception {
String sql = "INSERT INTO USER VALUES (1, 'heumsi')";
jdbcTemplate.execute(sql);
}
}
4) h2-console 로 브라우저에서 DB 내용 확인하기
h2 는 직접 데이터베이스 클라이언트 콘솔로 들어가지 않고, 브라우저를 통해서 접속할 수 있다.
이를 위해, 먼저 application.properties
에 다음 설정을 준다.
spring.h2.console.enabled=true
이제 앱을 구동시킨 뒤, localhost:8080/h2-console
로 접속한다.JDBC URL
로 jdbc:h2:mem:testdb
값을 준 뒤, 연결 버튼을 누르면 h2 DB 에 접속하게 된다.
MySQL 사용법
오픈소스로 공개되어있는 RDB 인 MySQL 을 사용해보자.
1) dependency
추가
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2) database 커넥션 설정
application.properties
에 db 의 url
과 username
, password
을 적어준다.
spring.datasource.url=jdbc:mysql://localhost:3306/springboot
spring.datasource.username={usrename}
spring.datasource.password={password}
이 후, 연동된 DB 를 사용하는법은 h2 에서 한 것과 동일하다.
3) 타임존 설정
MacOS 에서 MySQL 을 사용할 때, 타임존 설정 문제 때문에 에러가 발생하는데, 다음과 같이 /etc/my.cnf
파일에 세팅할 타임존을 적어주면 된다.
$ sudo vi /etc/my.cnf
[mysqld]
2 default-time-zone='+9:00'
이후 mysql 을 restart 해주면 적용된다.
PostgreSQL 사용법
1) dependency
추가
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
2) database 커넥션 설정
application.properties
에 db 의 url
과 username
, password
을 적어준다.
spring.datasource.url=jdbc:posgresql://localhost:5432/springboot
spring.datasource.username={usrename}
spring.datasource.password={password}
이 후, 연동된 DB 를 사용하는법은 h2 에서 한 것과 동일하다.
'더 나은 엔지니어가 되기 위해 > 지금은 안쓰는 자바' 카테고리의 다른 글
[스프링 부트 개념과 활용] 데이터 3. DB 초기화, 마이그레이션 (0) | 2020.02.08 |
---|---|
[스프링 부트 개념과 활용] 데이터 2. JPA (0) | 2020.02.08 |
[스프링 부트 개념과 활용] 웹 MVC 설정 4. HATEOAS 와 CORS (0) | 2020.02.06 |
[스프링 부트 개념과 활용] 웹 MVC 설정 3. ExceptionHandler (0) | 2020.02.06 |
[스프링 부트 개념과 활용] 웹 MVC 설정 2. 정적 리소스와 웹 JAR (0) | 2020.02.05 |