본문 바로가기
☕Java/Spring

[20210719] Spring + MyBatis를 이용한 로그인 및 게시판 3 - DAO

by 캔 2021. 7. 19.

DAO 또한 두 개를 만든다. Boardc 테이블에 접근하기 위한 BoardCDao, Customer 테이블에 접근하기 위한 CustomerDao를 만들었다.

BoardCDao는 게시판의 글 목록을 불러오는 bbs_all(), 하나의 글을 불러오는 get_bbs(), 게시글을 작성하기 위한 write_bbs() 메서드로 구성되어 있다.

CustomerDao는 로그인을 위한 Login(), 아이디 중복을 체크하기 위한 Id_Check(), 회원가입을 위한 Register() 메서드로 구성되어 있다.

이전 프로젝트와 달라진 점은 이전 프로젝트에서는 spring-controller.xml(Bean 설정 파일)에서 dao를 위한 bean을 생성하지 않으며 spring-controller.xml에서 SqlSession에 생성자 주입이 이뤄지지 않는다는 것이다. 대신 DAO에서 DAO으로 사용하겠다는 것을 알리는 @Repository 애너테이션, 생성자 주입을 위한 @Inject 애너테이션을 사용한다.

//BoardCDao.java

package customer.dao;

import java.util.List;

import javax.inject.Inject;

import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;

import customer.dto.BoardDTO;

@Repository
public class BoardCDao {

	@Inject
	private SqlSession ss;
	private static final String NameSpace = "bbsMapper.";
	
	public List<BoardDTO> bbs_all() {
		try {
			return ss.selectList(NameSpace+"bbs_all");
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	
	public BoardDTO get_bbs(BoardDTO b) {
		try {
			return ss.selectOne(NameSpace+"get_bbs", b);
		} catch(Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	
	public int write_bbs(BoardDTO b) {
		try {
			ss.insert(NameSpace+"write_bbs", b);
			return 0;
		} catch (Exception e) {
			e.printStackTrace();
			return 1;
		}
	}
}
//CustomerDao.java

package customer.dao;

import javax.inject.Inject;
import javax.servlet.http.HttpSession;

import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;

import customer.dto.CustomerDTO;

@Repository
public class CustomerDao {

	@Inject
	private SqlSession ss;
	private static final String NameSpace = "customerMapper.";
	
	public int Login(CustomerDTO u, HttpSession Hsession) {
		int Id_Search_Result = -1;
		try {
			Id_Search_Result = ss.selectOne(NameSpace+"Login", u);
		} catch (Exception e) {
			e.printStackTrace();
			return -1;
		}
		
		if(Id_Search_Result!=1) return Id_Search_Result;
		
		try {
			CustomerDTO u_info = ss.selectOne(NameSpace+"Login_Info", u);
			Hsession.setAttribute("u", u_info);
			return 1;
		} catch(Exception e) {
			e.printStackTrace();
			return -2;
		}
	}
	
	public int Id_Check(CustomerDTO u) {
		try {
			return ss.selectOne(NameSpace+"Id_Check", u);
		} catch (Exception e) {
			e.printStackTrace();
			return -1;
		}
	}
	
	public int Register(CustomerDTO u) {
		System.out.println("여기는 dao 안");
		int Id_Check_Result = Id_Check(u);
		if(Id_Check_Result!=0) return Id_Check_Result;
		try {
			ss.insert(NameSpace+"Register", u);
			return 0;
		} catch(Exception e) {
			e.printStackTrace();
			return -2;
		}
	}
}