회원관리 기능
member_tbl테이블을 활용해서 회원관리 기능을 만들어보자.
우선 필수적으로 있어야할 클래스, 인터페이스 및 매핑파일을 구성하자.
myapp패키지 밑에 controller, service, dao, vo패키지를 생성하자.
필수 설정파일 및 클래스
MemberController.java
controller패키지에 클래스를 생성하자.
package com.poby.myapp.controller;
import org.springframework.stereotype.Controller;
@Controller
public class MemberController {
}
@기호가 붙으면 어노테이션이다. 어노테이션은 기능을 나타낸다.
@Controller는 클라이언트 요청 시 서블릿에서 찾게되는 컨트롤러임을 의미한다.
MemberVO.java
vo패키지에 VO클래스를 생성한다.
package com.poby.myapp.vo;
public class MemberVO {
private String username;
private String password;
private String name;
private String tel;
private String email;
private String zipcode;
private String addr;
private String detailaddr;
private String regdate;
}
member_tbl의 칼럼명을 변수로 선언하고, getter/setter와 toString을 생성한다.
MemberDAO.java
DAO는 DB에 접근하게되는 클래스이기 때문에 root-context.xml에서 mybatis-spring으로 DAO패키지 위치를 설정해야한다.
이렇게 Namespaces에서 mybatis-spring을 활성화 시키고, Source로 돌아와서 다음 코드를 추가하자.
<!-- DAO클래스가 있는 위치 -->
<mybatis-spring:scan base-package="com.campus.myapp.dao"></mybatis-spring:scan>
이제 MemberDAO.java를 인터페이스로 생성하자.
package com.poby.myapp.dao;
public interface MemberDAO {
}
※ mybatis/mybatis-spring?
MyBatis는 DAO객체와 SQL문을 매핑해주는 별도의 프레임워크이다. 그 중에 MyBatis-Spring은 MyBatis를 스프링 프레임워크에 녹여서 더 쉽게 사용할 수 있게 하기 위한 모듈이다. 이전에 root-context.xml를 설정할때 생성했던 bean들이 mybatis-spring에 대한 설정이다. 맨 아래에 설정한 <mybatis-spring:scan>기능은 base-package에 설정된 패키지 하위 클래스를 검색해서 Mapper.xml과 맞는 것끼리 sqlSessionFactory의 getMapper()메소드를 beean으로 등록해준다.
<mybatis-spring:scan base-package="com.poby.myapp.dao"></mybatis-spring:scan>
MemberService.java
service패키지에 인터페이스로 생성한다.
package com.poby.myapp.service;
public interface MemberService {
}
MemberServiceImpl.java
service패키지에서 MemberService.java를 implement해서 생성한다.
package com.poby.myapp.service;
@Service
public class MemberServiceImpl implements MemberService {
}
@Service 어노테이션은 이 클래스가 기능을 구현하는 Service라는 것을 알린다.
memberMapper.xml
resources패키지 아래에 mapper폴더를 만들고, 그 안에 xml파일로 생성한다.
mybatis Getting Started에서 Exploring Mapped SQL Statements를 가져와서 namespace만 MemberDAO클래스의 경로로 바꿔준다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.poby.myapp.dao.MemberDAO">
</mapper>
'Spring' 카테고리의 다른 글
12.12.(월) Spring Framework(9): 회원관리 기능(3) (0) | 2022.12.14 |
---|---|
12.09.(금) Spring Framework(8): 회원관리 기능(2) (0) | 2022.12.11 |
12.09.(금) Spring Framework(6): Service/ServiceImpl (0) | 2022.12.11 |
12.09.(금) Spring Framework(5): DB연결 (0) | 2022.12.10 |
12.08.(목) Spring Framework(4): Header/Footer (0) | 2022.12.10 |