Spring登録機能の実装


スプリングを学ぶ過程で、最も基本的な会員加入機能を体現している.
jsp/servletで簡単に実現したがspringを完全に理解していないため構造が困難である.

テーブルの作成

create table T_Member(
	idx number not null,
	name varchar2(100) not null,
	Nick varchar2(2000) not null,
	email varchar2(20) not null,
	address varchar2(20) not null,
	indate date default sysdate,
	constraint pk_test_idx primary key(idx)
);
Oracleでは、まず必要なカラムが追加され、メンバー・テーブルが作成されます.
管理者機能を追加するには、ad ck列を追加し、デフォルト値を0に挿入します.

VOの作成

import lombok.Data;

@Data
public class MemberVO {
	private int idx;
	private String name;
	private String pw;
	private String nick;
	private String email;
	private String Address;
	private String indate;
}

lombok
データアシスタントを使用してGetter、Setterなどを作成します.
データアシスタントを使用しない場合は、getterまたはsetterを直接作成します.

Mapper.Javaインタフェースの追加

import org.apache.ibatis.annotations.Insert;

public interface MemberMapper {

	@Insert("insert into t_member(idx, name, nick, email, address, indate, pw) values(TMember_seq.nextval, #{name}, #{nick}, #{email}, #{address}, sysdate, #{pw})")
	public void MemberJoin(MemberVO vo);

}
Mapper.xmlを生成せずに@Insertを簡単に使うだけ
会員加入時に記入した情報が表に挿入されます.

MemberService, MemberServiceImple

import kr.smhrd.domain.MemberVO;

public interface MemberService {
	//회원가입
	public void Join(MemberVO vo) throws Exception;
	
}

@Service
public class MemberServiceImple implements MemberService {
	
	@Autowired
	private MemberMapper mapper;
	
	public void Join(MemberVO vo) {
		mapper.MemberJoin(vo);
		
	}

}
MemberServiceインタフェースを追加し、MemberServiceImpleにインタフェースを継承してMapperにアクセスします.実施形態において
@サービス説明は必ず記入し、漏れないようにしてください.

Controller


import kr.smhrd.domain.MemberVO;
import kr.smhrd.service.MemberService;





@Controller
public class MemberController {
	@Autowired
	private MemberService MemberService;
	
	@PostMapping("/Join.do")
	public String Join(MemberVO vo) {
		
		try {
			MemberService.Join(vo);
            
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "redirect:/";
	
	}
    

jspファイル

<form action="/TEST/Join.do" method="post">
		
	<label for="email">이메일</label> 
 <input type="email" id="email" name="email"placeholder="[email protected]">
簡単にメールを書いた.
name値を入力し、actionをcontrollerの会員入力と一致させます.

リファレンス


https://kimvampa.tistory.com/89?category=771727