[spring] parameter 두개 이상 mapper로 넘겨주기

KIM SOO MIN·2023년 11월 27일

bugReport

목록 보기
5/12

스프링에서 CRUD를 해줄 때 parameter를 두개 이상 넘겨주고 싶을 때가 있지요.

아래는 내가 알아낸 방법입니다.

  1. vo로 넘겨주기
    변수를 vo로 합쳐서 넘겨준다.
    따로 @RequestParam에서 지정해 줄 필요 없이 넘겨줄 수 있다.
    insert가 아닌 select문에서는 vo.get변수명()dmfh wlwjdgo wnsek.
  2. HashMap으로 점겨주기
    나는 session에 지정해준 id와 게시물 주인의 id를 함께 넣어줘야 했기 때문에 vo를 쓰기 싫고 변수를 지정해서 넣어줄 필요가 있었다.
    Dao 말고는 모두 (변수1, 변수2...) 써주어야 한다.
<select id="followchk" parameterType="java.util.HashMap" resultType="GnBoard">
  select count(*) follow from follow where m_id1=#{my_name}
  and m_id2=#{m_id}
</select>


public GnBoard followchk(String my_name, String m_id) {
  HashMap<String, String> my_info = new HashMap<String, String>();
  my_info.put("m_id", m_id);
  my_info.put("my_name", my_name);
  return sqlSession.selectOne("GnBoard.followchk", my_info);
}

여기서 꼭 바꿔야 할 것은 parameterType이다.
parameterType="java.util.HashMap"이라고 대소문자 구분해서 꼭 써주어야 HashMap으로 데이터를 받아올 수 있다.
문제의 DAO에서 HashMap을 생성해주고 생성해준 my_info에 변수 값을 넣어준다.

profile
3년차 풀스택 엔지니어입니다.

0개의 댓글