스프링 mvc - 블로그 만들기/dao클래스 생성
2024. 9. 27. 16:42ㆍ복습/스프링-게시판만들기
package v2.mvc.spring.blog.dao;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class BlogDAO {
@Autowired
SqlSessionTemplate sqlSessionTemplate;
}
SqlSessionTemplate은 MyBatis에서 SQL 세션을 관리하고 실행하기 위해 제공되는 클래스입니다.
주로 스프링 프레임워크와 함께 사용되며, MyBatis의 SqlSession을 스레드 세이프하게 관리할 수 있게 도와줍니다. MyBatis는 SQL을 XML이나 애노테이션을 통해 정의하고, 이 SQL을 실행하기 위해 SqlSession을 사용하는데, SqlSessionTemplate은 이 과정을 더 쉽게 해줍니다.
package v2.mvc.spring.blog.dao;
import java.util.Map;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class BlogDAO {
@Autowired
SqlSessionTemplate sqlSessionTemplate;
public int insert(Map<String, Object> map) {
int result = this.sqlSessionTemplate.insert("TB_BLG_CONT.insert", map);
if(result>0 && map.containsKey("seq_blg_cont")) {
return (Integer) map.get("seq_blg_cont");
}
return -1;
}
}
이 코드는 MyBatis와 스프링을 이용해 데이터베이스에 데이터를 삽입(insert)하는 기능을 담당하는 BlogDAO 클래스입니다. DAO(Data Access Object) 클래스는 데이터베이스와의 상호작용을 담당하는 계층입니다.
public int insert(Map<String, Object> map) {
int result = this.sqlSessionTemplate.insert("TB_BLG_CONT.insert", map);
- insert(Map<String, Object> map): 이 메서드는 map 형태로 전달된 데이터를 이용해 데이터베이스에 레코드를 삽입하는 기능을 합니다. 여기서 map은 삽입할 데이터가 키-값 쌍으로 포함된 자료구조입니다.
- sqlSessionTemplate.insert: MyBatis의 insert 메서드를 통해 SQL 문을 실행합니다. "TB_BLG_CONT.insert"는 MyBatis 매퍼 파일의 TB_BLG_CONT 네임스페이스에 정의된 insert SQL 문을 참조하는 식별자입니다. MyBatis 매퍼 XML 파일에 해당 SQL이 정의되어 있어야 합니다.
if(result>0 && map.containsKey("seq_blg_cont")) {
return (Integer) map.get("seq_blg_cont");
}
return -1;
- result > 0: 삽입된 행의 수가 1 이상이면, 즉 데이터 삽입이 성공했을 때 조건을 만족합니다.
- map.containsKey("seq_blg_cont"): 삽입된 데이터에 "seq_blg_cont"라는 키가 존재하는지 확인합니다. 이 키는 삽입된 레코드의 기본 키(혹은 시퀀스 값)일 가능성이 큽니다.
- return (Integer) map.get("seq_blg_cont");: map에서 "seq_blg_cont" 키에 해당하는 값을 가져오고, 이를 Integer로 캐스팅하여 반환합니다. 이 값은 주로 데이터베이스의 삽입된 레코드의 기본 키를 반환하는 데 사용됩니다.
- return -1;: 삽입이 실패하거나, "seq_blg_cont" 키가 없을 경우 -1을 반환합니다. 이는 삽입 실패를 나타내기 위한 기본값입니다.
전체 동작 요약
- 클라이언트가 insert 메서드를 호출하고 데이터가 담긴 map을 전달합니다.
- MyBatis의 sqlSessionTemplate.insert() 메서드를 사용해 데이터베이스에 데이터를 삽입합니다.
- 삽입이 성공하면, 삽입된 데이터의 시퀀스나 기본 키인 "seq_blg_cont"를 반환합니다.
- 삽입이 실패하거나 해당 키가 존재하지 않으면 -1을 반환합니다.
이 코드는 데이터베이스에 데이터를 삽입하고, 삽입된 레코드의 기본 키를 반환하는 표준적인 DAO 클래스입니다.
'복습 > 스프링-게시판만들기' 카테고리의 다른 글
스프링 mvc - 블로그 만들기/controller/view (1) | 2024.09.25 |
---|---|
2024.02.28 myboard- 부트스트랩 활용 menu.jsp, board.jsp (2) | 2024.02.28 |
2024.02.27 myboard- board (0) | 2024.02.22 |
2024.02.22 myboard- 설치 및 환경설정 (0) | 2024.02.22 |