회원관리 기능

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>

 

+ Recent posts