이전 글
이전시간에는 Service Class를 만들고 호출하는 방벙을 만들어봤다.
이제부터는 실제로 데이터를 불러오는 구조를 작성하고 데이터를 불러오는 부분을 MySQL과 연동하여 작성할 차례이다.
1. MySQL dependecy 추가
먼저 Mysql 연동을 위해서 필요한 라이브러리를 추가하도록 하자.
하단의 코드를 pom.xml 파일에 추가한다.
<!-- database -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
2. local DataBase 준비
2.1. local DataBase 설치
이제는 연동 시에 사용할 local DB를 설치해야 한다.
아래의 홈페이지 접속하여 MySQL을 설치하고 localDB를 설정한다.
*권장 MySQL은 8.0이상의 버전을 사용하도록 한다.
https://dev.mysql.com/downloads/mysql/
2.2. local DataBase DB 생성
이제 DB를 생성해야 한다.
DB가 없으면 아래의 홈페이지에서 world database ZIP파일을 다운로드 한다.
https://dev.mysql.com/doc/index-other.html
다운로드 받은 ZIP파일 압출을 풀면 world.sql 파일이 나온다.
이제 해당 파일을 mysql-workbench 로 열어준다.
Mysql local 서버와 연결 해주고 쿼리를 실행한다.
실행하면 아래와 같이 테스트용 world db가 생성된다
2.3. MySQL 설정
이제 MySQL db 연동 부분을 src/main/resources/application.yml에 설정하도록 한다.
아래와 같이 server와 DB 설정 소스코드를 추가한다.
server:
port: 8080
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver # mysql의 jdbc 드라이버
url: jdbc:mysql://localhost:3306/world?serverTimeZone=UTC&CharacterEncodig=UTF-8 # 데이터베이스 url
username: user # 데이터베이스 사용자 ID
password: duscjf0052 # 데이터베이스 사용자 비밀번호
3. MySQL Class 작성
이제는 쿼리를 저장하고 불러올 떄 쓰는 Repository Class에 추가한다.
info -> CityRepository.java
model City.java 추가
데이터를 주고받기 위한 getter, setter를 City 파일에 추가한다.
package com.example.demo.model;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class City {
private Integer id;
private String name;
private String countryCode;
private String district;
private Integer population;
}
이제는 실제로 mysql과 연동후에 데이터를 뽑아오는 Class파일을 작성해야 한다.
만들어둔 CityRepository 파일에 아래의 코드를 추가한다.
package com.example.demo.info;
import java.util.List;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;
import com.example.demo.model.City;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Repository
public class CityRepository {
private final NamedParameterJdbcTemplate namedParameterJdbcTemplate;
public CityRepository(NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;
}
public List<City> findList(){
String sql = "select * from city limit 1000";
log.debug("query : {}", sql);
RowMapper<City> cityMapper = (rs, rowNum) -> {
City city = new City();
city.setId(rs.getInt("ID"));
city.setName(rs.getString("Name"));
city.setCountryCode(rs.getString("contrycode"));
city.setDistrict(rs.getString("district"));
city.setPopulation(rs.getInt("population"));
return city;
};
return namedParameterJdbcTemplate.query(sql, new MapSqlParameterSource(), cityMapper);
}
}
이제 쿼리를 정렬하고 관리해야 한다.
class 를 만들어서 Groovy 의 Multiline String 으로 선언한다.
Groovy plugin을 아래와 같이 Marketplace에서 설치한다.
4. SQL 관리 - Groovy 파일 생성
'백엔드 > Spring Boot' 카테고리의 다른 글
[Spring Boot] REST API 만들기 (3) - Service 생성 (0) | 2021.10.12 |
---|---|
[Spring Boot] REST API 만들기 (2) - 로그 남기기 (slf4j+logback) (0) | 2021.10.07 |
[Spring Boot] REST API 만들기 (1) - Json 반환 방법 (0) | 2021.10.07 |
[이클립스] 스프링 부트 cannot resolved (0) | 2021.10.07 |
[이클립스] 스프링 부트 초기 세팅 (0) | 2021.10.07 |