이번 포스팅에서는 지난시간까지 진행되었던 JSP와 Thymeleaf에 DB를 연결해 보도록 하겠습니다.
MYSQL, MariaDB, MSSQL 등 여러가지 DB의 종류가 있지만 MS Azure 포탈을 이용하여
무료로 CLOUD MSSQL 데이터베이스를 구축해 놓은 포스팅이 있어, 이번 시간에는 MSSQL로 진행해 보도록 하겠습니다. (사실 어떤 DB를 써도 아무런 문제가 될 것은 없습니다. )
아! 혹시 Azure에서 무료로 제공하는 MSSQL DATABASE를 구현해서 실습을 따라 하실 분들은,
여기 링크로 이동하여 DATABASE를 만들고 진행하시면 더 편하실 것 입니다.
자, 이제 시작해 보겠습니다.
먼저 이론을 좀 설명해 드릴께요..
JDBC라는 용어를 한번쯤은 들어 보신 적 있으실 것 입니다.
JDBC = Java DataBase Connectivity 단어 그대로 자바에서 DB에 연결하기 위한 API(인터페이스) 입니다.
DB의 종류에 상관 없이 데이터베이스를 처리할 수 있습니다. 아마.. 그림으로 간단히 설명해 보면 아래와 같은 이미지로 설명될 수 있을 것 같네요.
이런 과정을 통해 DB와 연결이 진행될 것입니다.
다음은 Connection Pool (커넥션 풀) 이라는 용어도 들어 보셨겠죠?
DB를 사용할 때마다 Connection을 하고 Close를 한다면 번거롭고 빈번한 작업으로 많은 부하가 걸릴 것 입니다. 이를 해결하기 위해 일종의 Connection 객체를 만들어 Pool에 담아 놓고 관리하는 것을 의미 합니다. 당연히 불필요한 작업들이 사라지므로 성능의 향상을 기대할 수 있을 것 이구요~ 메모리도 효율적으로 운영 된답니다.
즉!! JDBC 실행과정 중에 생성될 Connection 객체를 미리 만들어 Pool안에서 관리하는 기법입니다.
그림으로 설명하면 아래와 같겠네요~
다음으로 배워 볼 단어는 MyBatis (마이바티스)입니다. 이 단어도 익숙하죠?
위에서 배운 JDBC, ConnectionPool 등을 위해서 상당부분의 코드를 작성하여야 할 것 입니다.
Mybatis는 JDBC로 처리하는 코드와 파라미터 설정.. 그리고 결과 매핑을 아주 간단히 처리 할 수 있도록 도와주는 개발 프레임워크로 이해하시면 되겠습니다. 즉.. DB 레코드에 타입과 MAP의 인터페이스 등 매핑을 위해 XML 및 어노테이션을 사용하여 좀더 쉽게 개발할 수 있도록 하는 역할입니다. 마이바티스는 아파치 라이센스 2.0으로 배포되는 free 소프트웨어 입니다. 당연히 많이 쓰이겠죠?
자, 이론은 이정도만 이해하면 될 것 같구요~ 이제 실습을 통해 진행해 볼까요?
스프링부트에서 mybatis와 mssql을 사용하기 위에 pom.xml에 의존성을 추가 해 줍시다.
(다른 db의 의존성 규칙이 필요하시면 댓글 주시면 추가해 놓도록 하겠습니다.)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<!-- Mybatis 시작 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!-- DB (MSSQL) Connection -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<scope>runtime</scope>
</dependency>
|
cs |
추가하고, 저장하신 후에는 아시죠? Maven Reload Project를 실행해 주세요~
다음은 application.properties 파일을 열어, Driver 설정을 추가해 주도록 합시다.
1
2
3
4
|
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:log4jdbc:sqlserver://ㅇㅇㅇ.database.windows.net;DatabaseName=SampleDB;sslProtocol=TLSv1.2 spring.datasource.username=아이디
spring.datasource.password=암호
|
cs |
위의 규칙에 맞춰 작성 하면 아래와 같이 작성이 되겠죠?
혹시 이 부분에서 어려움이 있다면 댓글 주시기 바랍니다. 처음 해보는 분들은 충분히 헷갈릴 수 있다고 생각되네요~
또는 mssql이 아니라 다른 데이터베이스를 연결해야 한다면 마찬가지로 댓글 주세요~
다음은 아까 설명한 mybatis사용을 위한 mapper는 xml 형식을 사용한다고 했죠?
mybatis의 mapper에 쿼리문을 인식할 수 있도록 아래와 같이 application.properties에 추가해 줍니다.
1
|
mybatis.mapper-locations=/mybatis/**/*.xml
|
cs |
위 의미는 mapper의 경로를 지정한 것인데요, 아래와 같이 폴더를 생성해 주시면 됩니다.
(resources폴더 밑에 mybatis 폴더를 만들어 주세요)
이제 스프링부트에서 mybatis mapper의 위치는 resourecs/mybatis/에 확장자 xml을 인식하게 됩니다.

여기까지 진행하셨다면 이제 DATABASE 연결을 위한 설정은 모두 끝난 것 입니다.
서버를 기동해도 별다른 차이점을 느끼지 못하실 텐데요.. 일단 설정이 끝난 것이니 아쉬워 하지 마시구요~
이제, 실제로 데이터베이스의 테이블을 조회하여 데이터를 뷰로 가져오는 실습을 다음 포스팅에서 진행해 보도록 하겠습니다.
'SPRING BOOT' 카테고리의 다른 글
[스프링부트 10] Spring Boot 로그 설정해 보기 (1) | 2021.11.30 |
---|---|
[스프링부트 9] Spring Boot 데이터베이스(MSSQL) 연결 2 (2) | 2021.11.22 |
[스프링부트 7] Spring MVC View 만들기 (Thymeleaf) (0) | 2021.11.11 |
[스프링부트 6] Spring MVC View 만들기 (JSP) (7) | 2021.11.10 |
[스프링부트 5] Spring MVC Controller 만들기 2탄 (0) | 2021.11.10 |