MyBatis에서는 SQL문의 파라미터 값을 받기 위해 "#{프로퍼티명}"으로 표기한다.
#{프로퍼티명}을 이용해 특정행을 검색하는 SELECT문
<select id="구분자" parameterType="파라미터타입" resultType="반환타입">
select 컬럼명1, 컬럼명2, ...
from 테이블명
where 컬럼명 = #{프로퍼티}
</select>
#{프로퍼티명}을 이용해 한 행을 추가하는 INSERT문
<insert id="구분자" parameterType="파라미터타입">
insert into 테이블명(컬럼명1, 컬럼명2, ...)
values (#{값1}, #{값2}, ...)
</insert>
#{프로퍼티명}을 이용해 특정 또는 일부 행의 컬럼 값을 수정하는 UPDATE문
<update id="구분자" parameterType="파라미터타입">
update 테이블명
set 컬럼명1 = #{값1}, 컬럼명2 = #{값2}
where 컬럼명3 = #{값3}
</update>
#{프로퍼티명}을 이용해 특정행을 삭제하는 DELETE문
<delete id="구분자" parameterType="파라미터타입">
delete from 테이블명
where 컬럼명 = #{값1}
</delete>
데이터베이스가 자동 생성키를 생성하지 않은 경우
<insert>요소 내에 <selectKey>요소로 키 생성에 필요한 SELECT문을 기술한다.
<insert id="구분자" parameterType="파라미터타입">
<selectKey keyProperty="프로퍼티" resultType="자료형" order="BEFORE" statementType="PREPARED">
SELECT문(키생성관련)
</selectKey>
insert into 테이블명(컬럼명1, 컬럼명2 ...)
values(#{프로퍼티}, #{프로퍼티} ...)
</insert>
=> 테이블에 한 행을 추가할 때 sequence를 이용해서 자동으로 값을 생성하는 경우가 있다. 만약 데이터베이스에 자동생성키가 생성되어있지 않은 경우에 사용할 수 있다. 적용하면 다음과 같다.
<insert id="boardInsert" parameterType="BoardVO">
<selectKey keyProperty="num" resultType="int" order="BEFORE">
SELECT BOARD_SEQ.NEXTVAL FROM DUAL
</selectKey>
insert into board(num, name, title, content)
values (#{num}, #{name}, #{title}, #{content})
</insert>
=> 이렇게 작성하면 insert문을 실행하기 전(order가 "BEFORE" 이니까)에 selectKey를 실행하고 결과를 "num"이라는 프로퍼티에 할당한다. 그리고 insert문을 실행해서 #{num}에 "num"을 설정한다.
'MyBatis' 카테고리의 다른 글
CDATA Section (0) | 2023.10.07 |
---|---|
ResultMap (0) | 2023.10.07 |
MyBatis 프레임워크 (2) | 2023.10.06 |
mybatis-config.xml 설정파일 (0) | 2023.08.07 |
SQLSession (1) | 2023.08.07 |