Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

KSI일기장

0427spring 비동기로 웹페이지에 회원정보 전체조회 본문

Spring

0427spring 비동기로 웹페이지에 회원정보 전체조회

MyDiaryYo 2023. 4. 27. 21:49

//MemberController

//회원 목록 조회(ajax) (sqlSession.selectList())
	@ResponseBody //ajax응답시 사용
	@RequestMapping("/selectAll")
	//*****방법1*****
//	public List<Member> selectAll() {
//		return service.selectAll();
//	}
	
	//*****방법2*****
	public String selectAll() {
		List<Member> list = service.selectAll();
		return new Gson().toJson(list);
	}

//MemberServiceImpl

//회원정보 전체조회
	@Override
	public List<Member> selectAll() {
		return dao.selectList();
	}

//MemberService

//회원전체 정보 조회
	public List<Member> selectAll();

//MemberDAO

/**회원전체조회
	 * @return
	 */
	public List<Member> selectList() {
		return sqlSession.selectList("memberMapper.selectAll");
		//sqlSession.selectList(" mapper에서 <select id="selectAll">의 id값")
	}

//member-mapper

<!-- *****resultMap 태그*****
  -SELECT 조회결과(ResultSet)의 컬럼과 
  조회결과를 옮겨 담을 VO의 필드명이 일치하지 않을 때
  이를 매핑시켜 조회결과가 필드에 세팅되게 하는 역할
  
  [resultMap 속성]
  1)type :조회결과를 담을 VO의 타입 또는 별칭 ex)mybatis-config에서 만든member
  2)id :만들어진 resultMap태그를 지칭할 이름(식별명)
  
   -->
    
    <resultMap type="member" id="member_rm">
    
    	<id property="memberNo" column="MEMBER_NO"/>
    	
    	<result property="memberEmail"		column="MEMBER_EMAIL"/>
    	<result property="memberPw" 		column="MEMBER_PW"/>
		<result property="memberNickname" 	column="MEMBER_NICK"/>
		<result property="memberTel" 		column="MEMBER_TEL"/>
		<result property="memberAddress" 	column="MEMBER_ADDR"/>
		<result property="profileImage" 	column="PROFILE_IMG"/>
		<result property="enrollDate" 		column="ENROLL_DT"/>
		<result property="secessionFlag" 	column="SECESSION_FL"/>
    
    </resultMap>


<!-- 회원정보 전체조회 -->
  <select id="selectAll" resultMap="member_rm">
  	SELECT MEMBER_NO, MEMBER_EMAIL, MEMBER_NICK FROM MEMBER_S
  </select>

mapper에서 parameterType안적어주는 이유는

selectAll() 에서 ()안에 넘겨주는 값이 없으므로 parameterType은 안적어줍니다

 

resultMap="member_rm"으로 적은 이유는

위 controller, service, DAO에서 public List<Member>로  List형태로 넘겨주기 위해 resultMap을 만들어 사용했다

 

resultMap은 데이터베이스 쿼리결과를 객체로 변환할 수 있습니다

이때 변환을 위한 설정 방법 중 하나가 resultMap입니다

resultMap를 사용하면 SQL쿼리결과와 매핑할 객체의 프로퍼티를 직접 매핑하는 대신에,

resultMap설정을 통해 객체와 데이터베이스 쿼리결과를 매핑할 수 있습니다

resultMap을 사용하면 객체와 데이터베이스 쿼리결과 간의 매핑 로직을 중앙에서 관리할

수 있기 때문에 유지보수성이 좋아지고 코드의 가독성이 높아집니다