# mybatis
mybatis.mapper-locations=classpath:mybatis/mapper/**/**.xml
@Autowired
mapper 태그 안에 sql문을 작성한다.
namespace : IUserDao의 경로를 이용하여 실제 인터페이스 파일 찾아서 연결
mapper 안의 태그들 (select, update, delete ...)
select 등의 태그들에서는
id = 메서드이름 or 인터페이스내 추상 메서드 이름
resultType = 리턴받을 자료형(String이나 int는 생략)
parameterType = 전달 인수의 자료형(String이나 int는 생략)
태그들 사이 = sql문 작성 (끝에 ; 붙이지 말 것)
실행결과를 resulyType 에 적힌 자료형 형태로 리턴하되 메서드의 리턴형에 맞춰서, 결과가 List 면 List 형태로 , 단일데이터면 단일데이터 Dto형태로 자동으로 리턴해줍니다
package com.ezen.g10.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.ezen.g10.dto.UserDto;
@Mapper
public interface IUserDao {
List<UserDto> getList();
}
@Mapper
어노테이션을 붙여야 한다.parameterType : 전달 인수 자료형
sql문 안에 전달 인수 넣기
#{변수명}
#{param1}
, #{param2}
, #{param3}
트랜젝션
: 하나이상의 데이터베이스 작업을 한단위로 묶어서 하나의 실행단위로 정의된 것을 트랜잭션이라고 한다
트랜잭션 하나가 모두 다 실행이 되어 완료되면 commit 이라는 명령으로 작업을 완료하고, 중간에 에러가 발생하여 트랜잭션을 취소하고자 한다면 rollback 이라는 명령으로 취소한다
@Data
붙이면 .setTotalcount가 자동으로 생성되므로 paing()메서드를 넣을 수 없다. 따라서 paging메서드를 private에서 public으로 바꾸고 totalcount를 세팅한 다음 paging메서드를 직접 호출해서 사용한다.