컨트롤러에서 매핑 작업 수행
service 객체 자동 주입 필요
@Controller
public class XXXController {
@Autowired
private XXXService service;
@GetMapping(value = "매핑할 주소") //또는
@PostMapping(value = "매핑할 주소")
public String 메서드명([매개변수...]) {
// 서비스 객체 메서드 호출
// 저장 데이터 있을 경우 Model 타입 파라미터 선언 및 addAttribute()로 저장
return "포워딩할 경로";
// 만약 Redirect방식일 경우
// return "redirect:/포워딩 경로";
}
}
서비스에서 작업 요청
mapper 객체 자동 주입 필요
@Service
public class XXXService {
@Autowired
private XXXMapper mapper;
public 리턴타입 메서드명([매개변수 선언...]) throws Exception {
// Mapper 객체 메서드 호출
return mapper.메서드명([전달인자...]);
}
}
public interface XXXMapper {
public 리턴타입 인터페이스명([전달인자...]);
}
태그로 SQL 구문 작성
id
속성이 mapper 인터페이스명과 동일해야 함
각 태그 사이에 실제 쿼리문 작성
만능문자 파라미터(?)는 ?
기호 대신 #{파라미터명}
형태로 지정
-> 구문 내의 만능문자 사용 위치에 #{파라미터명}
지정 시 파라미터명은 VO 객체의 변수명과 동일
⭐ Ex
<insert id="insertMember">
INSERT INTO member
VALUES (
null
, #{name}
, #{id}
, #{passwd}
, #{email}
, #{gender}
, now()
, 'N'
)
</insert>
#{name}, #{id}, #{passwd}, #{email}, #{gender}
부분은 MemberMapper 인터페이스에서 파라미터로 전달받음
MemberVO 객체의 멤버변수명과 동일해야하며, 자동으로 해당 부분의 데이터 전달됨
insert, update, delete 태그를 통해 작업 수행할 경우 영향을 받은 레코드 수가 자동으로 리턴되며 리턴타입은 int 타입으로 자동 지정됨