728x90
반응형
요즘 java 쪽을 아예 공부안하니, 계속 까먹어서 정리 하려고 한다.
마이바티스에서 parameterType을 보통 객체로 받아오는 일이 많은데, 데이터가 하나라면 String이나 int와 같이 받아올 일도 있을 것이다. 아래처럼
<!-- parameterType을 string으로 받아옴 -->
<select id="stringTest" parameterType="String" resultType="String">
<!-- parameterType을 int로 받아옴 -->
<select id="stringTest" parameterType="int" resultType="String">
이제 이렇게 받아온 녀석들을 어떻게 쓸까? 아무렇게나 써도 된다.
보통은 카멜케이스로 해서 컬럼명과 맞추는 게 기본이지만 아무렇게나 써도 된다.
아래를 보자.
<select id="stringTest" parameterType="String" resultType="String">
SELECT BEG_DE
FROM DBTEST.SM_POPUP
<!-- 아래 3개의 WHERE절 중 아무거나 하나를 써도 된다. -->
WHERE POP_SUB = #{popSub} <!-- 컬럼명인 POP_SUB를 카멜케이스로 해 popSub로 줌 -->
WHERE POP_SUB = #{value} <!-- 컬럼명인 POP_SUB를 value로 줌 -->
WHERE POP_SUB = #{iLoveMochi} <!-- 컬럼명인 POP_SUB를 iLoveMochi로 줌 -->
</select>
이렇게 value로 주든, iLoveMochi로 주든 내가 주고 싶은 값으로 주면 된다.
그럼 실제로 한번 쿼리를 돌려보자.
testMapper.java
// "팝테스트" 라는 문자열을 넘기는 Mapper작성 및 받아온 result를 콘솔에 찍음
public void stringTest() {
String srh = "팝테스트";
String result = sqlSession.selectOne("dao.Inquiry.stringTest", srh);
System.out.println(result);
}
testMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.Inquiry">
<select id="stringTest" parameterType="String" resultType="String">
SELECT BEG_DE
FROM DBTEST.SM_POPUP
WHERE POP_SUB = #{iLoveMochi}
</select>
</mapper>
결과는?
만약 마이바티스의 동적<if>문을 사용한다면 _parameter 를 활용하여야 한다. 아래는 <if>문 사용 코드
<select id="stringTest" parameterType="String" resultType="String">
SELECT BEG_DE
FROM DBTEST.SM_POPUP
<if test="_parameter!= null and _parameter != ''">
WHERE POP_SUB = #{_parameter}
</if>
</select>
이렇게 _parameter를 활용하면 된다. 아래는 결과 값
구글링을 하다보면 동적 <if>문에서 사용하려면 _parameter 또는 value를 쓰라는데.. 내가 테스트 했을 때는
_parameter만 되고 value는 똑같이 에러가 발생했다.
마이바티스 버전에 따른건지 왜 그런지는 모르겠지만.. 둘 중 아무거나 하나 쓰면 될 것 같다..
728x90
반응형
'MyBatis' 카테고리의 다른 글
[MyBatis] ${ }으로 테이블명을 가져올 때 생기는 구문오류 해결방법 :: 숫자로 시작하는 테이블명 구문오류 (0) | 2022.08.22 |
---|---|
[MyBatis] 마이바티스에서 샵(#)과 달러($)의 차이점에 대하여 (0) | 2022.08.20 |
[Mybatis] 마이바티스 forEach문법을 활용한 쿼리 반복 실행에 대해 알아보자. (0) | 2022.05.25 |
[MyBatis] 마이바티스 부등호(>, <, >=, <= )가 안 먹히는 현상/부등호 오류 ( CDATA ) (0) | 2022.05.01 |
[MyBatis] 어노테이션 방식과 XML방식의 구현방법 및 차이점 (0) | 2022.03.17 |