2021. 9. 3. 12:45ㆍ소소한 개발
개인 블로그 만들기(4) : [서버구축] Oracle Cloud Docker MariaDB 연동
* 기록용입니다.
* Ubuntu 버전은 20.04 입니다.
* 무료 프론티어를 사용하고 있습니다.
1. MariaDB Table 생성
CREATE TABLE test
( id varchar(50) NOT NULL PRIMARY KEY,
name varchar(150) NOT NULL
);
| 간단하게 연동되는 Test용으로 테이블을 생성했습니다.
2. Spring Boot Project
├─java
│ └─com
│ └─jinho
│ └─homepage
│ ├─controller
│ ├─mapper
│ ├─service
│ └─vo
└─resources
├─mybatis
│ └─test
│ └─testMapper.xml
├─static
└─templates
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<scope>runtime</scope>
</dependency>
(선택)
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
| pom.xml의 dependency에 위 2개를 추가합니다.
해당 프로젝트에서는 JPA가 아닌, Mybatis를 사용하기때문에 mybatis를 추가했지만 JPA를 사용하려면 JPA관련 dependency를 추가하시면 됩니다.
2.1 application.yml(application.properties)
spring:
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://(ip주소):3306/(DB주소)?characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 1234
mybatis:
mapper-locations: mybatis/**/*.xml
| MariaDB관련 Driver 및 주소 등을 적습니다.
mapper-locations를 통해 mapper 위치를 설정합니다.
2.2 VO 생성
@Data
public class testVo {
private String id;
private String name;
}
| test용 Vo를 추가합니다.
테이블명과 동일해야 1:1 매치가 되어서 데이터가 VO안에 담김니다.
2.2 Mapper, Serivce, Controller 생성
@Mapper
@Repository
public interface PageMapper {
List<testVo> selectTest();
}
@Service
public class PageService {
private PageMapper pageMapper;
public PageService(PageMapper pageMapper) {
this.pageMapper = pageMapper;
}
public List<testVo> selectTest(){
return pageMapper.selectTest();
}
}
@RestController
public class PageController {
private PageService pageService;
public PageController(PageService pageService) {
this.pageService = pageService;
}
@GetMapping("/test")
public List<testVo> testList(){
return pageService.selectTest();
}
}
| Mapper로 사용되는 Class는 Mapper 및 Repository 어노테이션을,
Controller에는 테스트여서 데이터만 확인하기 위해 RestController로 사용했습니다. (뷰 만들기 귀찮아서 그런게 아..ㄴ)
2.3 Mapper.xml 생성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jinho.homepage.mapper.PageMapper">
<select id="selectTest" resultType="com.jinho.homepage.vo.testVo">
SELECT * FROM test
</select>
</mapper>
| mapper를 작성해야합니다.
mapper namespace : public interface PageMapper 경로
select id : 쿼리문 id (PageMapper Interface에서 변수명과 같아야 합니다.)
resultType : 데이터를 담을 VO 경로
3. Application 실행 및 데이터 확인
| application을 실행 한 뒤 데이터를 확인해 보았습니다.
오라클 클라우드에 docker로 띄운 MariaDB 테이블에 잘 접속해서 데이터를 꺼내오는 것을 확인할 수 있습니다.
> 차후 Application을 오라클 클라우드의 인스턴스에서 구동 후 ip 혹은 도메인으로 외부에서 24시간 돌아가는 홈페이지를 구축해 보겠습니다.
'소소한 개발' 카테고리의 다른 글
Google Map API 일본해(동해)로 나오는 문제 수정 방법(React) (0) | 2023.07.28 |
---|---|
개인 블로그 만들기(6) : [서버구축] Oracle Cloud Docker Tomcat 구축 및 배포 (1) | 2021.09.09 |
개인 블로그 만들기(1) : [서버구축] Oracle Cloud 인스턴스 생성 (0) | 2021.09.02 |
개인 블로그 만들기(2) : [서버구축] Oracle Cloud Ubuntu 20.04 설정 (0) | 2021.09.02 |
개인 블로그 만들기(3) : [서버구축] Oracle Cloud Ubuntu 20.04 Docker설치 (0) | 2021.09.02 |