KSI일기장
0427spring 비동기로 웹페이지에 회원정보 전체조회 본문
//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을 사용하면 객체와 데이터베이스 쿼리결과 간의 매핑 로직을 중앙에서 관리할
수 있기 때문에 유지보수성이 좋아지고 코드의 가독성이 높아집니다
'Spring' 카테고리의 다른 글
spring 파일업로드 중 에러springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactoryBean' defined in class with path resource (0) | 2023.04.29 |
---|---|
0428spring마이페이지 (0) | 2023.04.28 |
0427 spring웹페이지에서 이메일 입력해 회원정보조회 (0) | 2023.04.27 |
0427spring 회원가입 (+닉네임 유효성 중복검사) (0) | 2023.04.27 |
0427spring예외처리 (0) | 2023.04.27 |