KyungHwan's etc.

MyBatis 파라미터를 Map형식으로 받기 본문

Java/스프링프레임워크

MyBatis 파라미터를 Map형식으로 받기

KyungHwan_0 2018. 6. 21. 17:39

MyBatis 파라미터를 Map형식으로 받기

Mybatis 에서 사용자의 파라미터를 받을때 순서대로 받는경우가 있는데, 받는 파라미터의 이름대로 값을 집어넣을수 있을까 라는 방법을 고민하다가 Map형식을 통해서 <key, value> 값으로 집어 넣을수 있는 점을 알게되었다.

public interface IDao {
public void writeup(Map map);
}

Map 형식으로 데이터를 받기위해 선언해준다.

<insert id="writeup" parameterType="hashMap">
INSERT INTO FEED(num, id, jsonobj) VALUES(FEEDINDEX.NEXTVAL, #{id} , #{jsonobj})
</insert>

"id" 와 '"jsonobj" 의 키를 가진 파라미터값을 가져올려고 한다면,

String data1 = jsonObj.get("id").toString();
String data2 = jsonObj.get("jsonobj").toString();
IDao dao = sqlSession.getMapper(IDao.class);
Map map = new HashMap()
   
map.put("id", data1); //가져온 데이터에 키와 벨류값을 지정
map.put("jsonobj", data2);

System.out.println("db에 등록할 값 확인"+map);
dao.writeup(map); //map에 넣은 키벨류값을 MyBatis에 전달하여 쿼리문을 실행

'map' 이라는 이름의 Map 을 만들어서 <key, value> 값을 설정하여 데이터를 집어넣는다. 집어넣은 맵은 dao.writeup() 으로 넣어 매핑시킨다.

이런식으로 자신이 원하는 데이터의 키값을 줘서 벨류값을 정할수가 있다. 이렇게 Map형식으로 넣으면, MyBatis에 쿼리데이터를 가진 xml파일에서 많은 파라미터를 가져야할경우 편리하며, 나중에 유지보수 측면에서도 한번에 알아볼수 있기 때문에 편리한점이 있다.

Comments