728x90
- mvc 패턴까지 내용은 https://jobtc.tistory.com/57(Spring Boot에서 MVC 초간단 설정) 참고하시고 그 이후의 작업부터 진행합니다.
- mysql은 설치되어 있어거나 계정이 있어야 합니다.
- jstl도 사용하도록 설정합니다. (샘플 코드내에서는 사용하지 않음)
- mysql은 설치되어 있어거나 계정이 있어야 합니다.
- jstl도 사용하도록 설정합니다. (샘플 코드내에서는 사용하지 않음)
1. dependency 추가
pom.xml에 아래의 dependency들을 추가합니다. 두 번째에 있는 mybatis-spring-boot-starter로 추가하지 않으면 mybatis가 정상적으로 인식되지 않을 수 있습니다.
<dependencies>
…
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
</dependencies>
2. properties 추가
resources/application.propertyes 파일에 mysql 연결 정보와 mybatis에 관한 내용을 추가합니다.
#mysql
spring.datasource.data-source-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/db명
spring.datasource.username=계정명
spring.datasource.password=계정 암호
# mybatis
mybatis.type-aliases-package=kr.jobtc.mybatis
mybatis.mapper-locations=static/mapper/*.xml
3. 패키지 및 폴더 생성
application.properties에 지정된 폴더를 생성합니다.
4. mapper 테스트용 인터페이스 작성
package kr.jobtc.mybatis;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Repository
@Mapper
public interface TestMapper {
public Integer totSize(String findStr);
}
5. mapper 작성
resources/static/mapper/test.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="kr.jobtc.mybatis.TestMapper">
<select id="totSize" parameterType="String" resultType="Integer">
select count(serial) totSize from board
where mid like '%${_parameter}%'
or subject like '%${_parameter}%'
or doc like '%${_parameter}%'
</select>
</mapper>
select문장은 어떤것이든 상관없습니다. 샘플 코드는 검색어로 전달된 문자열이 포함된 데이터 건수를 리턴하고 있습니다. 그러나 namespace는 Mapper interface가 있는 패키지를 사용해야 합니다.(TestMapper.java의 패키지)
6. Service 클래스 작성
package kr.jobtc.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import kr.jobtc.mybatis.TestMapper;
@Service
@Transactional
public class MybaService {
@Autowired
TestMapper mapper;
@Autowired
PlatformTransactionManager manager;
public int totSize(String str) {
TransactionStatus status =
manager.getTransaction(new DefaultTransactionDefinition());
int totSize =0;
try {
totSize = mapper.totSize("");
//manager.commit(status);
//manager.rollback(status);
}catch(Exception ex) {
ex.printStackTrace();
}
return totSize;
}
}
* 트랜젝션이 필요없는 로직이지만 트랜젝션 부분을 한번 작성해 봅니다.
7. Controller 작성
package kr.jobtc.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import kr.jobtc.mybatis.TestMapper;
import kr.jobtc.service.MybaService;
@RestController
public class MvcTestController {
@Autowired
MybaService service;
@RequestMapping("/myba")
public ModelAndView myba() {
ModelAndView mv = new ModelAndView();
int totSize = service.totSize("");
mv.addObject("totSize", totSize);
mv.setViewName("myba_result");
return mv;
}
}
8. view 작성
webapp/WEB-INF/view/myba_result.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
건 수 : ${totSize }
</body>
</html>
9. 테스트
출력된 건수는 각자 다르겠지요~
이렇게 해서 간단하게 mybatis를 spring boot에서 처리할 수 있는 샘플 작업을 마무리 지었습니다.
이상 it여행자였습니다.
'BOOKS > Spring Boot' 카테고리의 다른 글
spring에서 사용하는 주요 Annotation (0) | 2022.07.14 |
---|---|
Spring Boot에서 WebSocket 만들기 (4) | 2022.01.02 |
Spring Boot에서 MVC 초간단 설정 (0) | 2021.12.24 |