All Day Tired

MyBatis parameterType이 HashMap일 경우 사용법 본문

Back/Spring

MyBatis parameterType이 HashMap일 경우 사용법

yu.dev 2022. 5. 9. 20:42

아주 간단한 실습으로 여러개의 값을 MyBatis SqlMap.xml에서 파라미터 값으로 사용하고 싶어서

구글링을 하던 중 VO/DTO를 쓰거나 HashMap을 쓰라는 글을 보고 Hash

Map으로 간단히 써보자

해서 HashMap으로 구현하는데 계속 SQL오류가 떴다...

 

하려고 한 실습은

이렇게 select box의 value와 input의 값을 받고 이 두 값을 MyBatis로 넘겨줘서 해당하는 조건에 따라

if태그로 경우를 나눠줘서 조회할 수 있게 하는 것

근데 자꾸 if태그가 안 먹는게 문제

HashMap에 search, value라는 key로 select box의 value와 input의 value를 보내줬지만 계속 안돼서

구글링 하는데 하라는대로 해도 계속 if태그의 조건이 안 맞고 에러 떠서

같이 배우는 분한테 물어보니

	<select id="selectBySearch" resultType="memberVO" parameterType="java.util.Map">
			select * from emp
			<where>
			<if test='search=="deptno"'>
				<![CDATA[deptno = #{value}]]>
			</if>
			<if test='search=="sal"'>
				<![CDATA[sal >= #{value}]]>
			</if>
			<if test='search=="ename"'>
				<![CDATA[ename like '%' || upper(#{value}) || '%']]>
			</if>
			</where>
	</select>

test에서 key 이름에 아무것도 붙이지 말고 써야한다고 하신다...

이것도 모르고 계속 #{}로 감싸니 안되었지...

VO/DTO로 해줄떄도 마찬가지... test에는 #{}로 감싸지말자...

'Back > Spring' 카테고리의 다른 글

싱글톤, 싱글톤 컨테이너  (2) 2024.12.31
스프링컨테이너, 스프링빈 등록/주입  (0) 2024.12.30
@Scheduler, cron표현식 사용  (0) 2024.10.27
스프링 빈 등록  (0) 2024.09.23
스프링에서 RestTemplate 예제  (0) 2024.08.20
Comments