Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 스프링파일업로드
- MariaDB
- Java
- pagenation
- 페이징
- jquery
- 게시판구현
- select
- mysql
- insert
- 자바파일업로드
- SQL
- mybatis
- 퍼블리싱
- 자바타입
- 스프링
- poi
- poi엑셀
- 자바스크립트
- jsp
- crud
- CSS3
- db
- html5
- 파일업로드
- ORDERBY
- JSTL
- 자바
- spring
- PAGING
Archives
- Today
- Total
째의 개발 기록방
[MyBatis/MariaDB] mapper.xml 문법 본문
***이 글은 이제 막 개발을 시작한 자린이가 기억하기 위한 일종의 기록으로 정확하지않을 수 있음을 알립니다.***
- insert - 매핑된 INSERT 구문.
- update - 매핑된 UPDATE 구문.
- delete - 매핑된 DELEETE 구문.
- select - 매핑된 SELECT 구문.
<select id="selectComments" parameterType="CommentsVO" resultType="CommentsVO">
SELECT
CO_NUMBER AS coNumber
,CT_NUMBER AS ctNumber
,CO_NAME AS coName
,CO_CONTENT AS coContent
,CO_DATE AS coDate
,DATE_FORMAT(CO_DATE,'%Y-%m-%d %H:%i:%s') AS coDateStr
FROM CONTRACT_COMMENTS
WHERE 1=1
AND CT_NUMBER = #{ctNumber}
</select>
SELECT 문
여기서 id값이 구문의 이름이 된다.
이름 : selectComments
자료형 타입: CommentsVO
결과 데이터는 여기에 저장된다.
결과 데이터 : CommentsVO
<select id="메소드명" resultType="결과값 클래스명" parameterType="파라미터 클래스명">
SELECT * FROM [테이블이름] WHERE [칼럼명] = #{파라미터명}
</select>
id 값은 dao(mapper)클래스에 사용하는 메소드명을 적어주고, resultType에는 결과로 받는 클래스명
parameterType은 파라미터 클래스명을 입력해주면 되고, 파리미터를 사용하지 않는경우 생략가능하다.
속성 | 설명 |
id | 구문을 찾기 위해 사용될 수 있는 네임스페이스 내 유일한 구분자 |
parameterType | 구문에 전달될 파라미터의 패키지 경로를 포함한 전체 클래스명이나 별칭 |
resultType | resultType이 구문에 의해 리턴되는 기대타입의 패키지 경로를 포함한 전체 클래스명이나 별칭. collection인 경우 collection 타입 자체가 아닌 collection 이 포함된 타입이 될 수 있다. resultType이나 resultMap을 사용하라. |
resultMap | 외부 resultMap 의 참조명. 결과맵은 마이바티스의 가장 강력한 기능이다. resultType이나 resultMap을 사용하라. |
flushCache | 이 값을 true 로 셋팅하면 구문이 호출될때마다 로컬, 2nd 레벨 캐시가 지워질것이다(flush). 디폴트는 false이다. |
timeout | 예외가 던져지기 전에 데이터베이스의 요청 결과를 기다리는 최대시간을 설정한다. 디폴트는 셋팅하지 않는 것이고 드라이버에 따라 다소 지원되지 않을 수 있다. |
fetchSize | 지정된 수만큼의 결과를 리턴하도록 하는 드라이버 힌트 형태의 값이다. 디폴트는 셋팅하지 않는 것이고 드라이버에 따라 다소 지원되지 않을 수 있다. |
statementType | STATEMENT, PREPARED 또는 CALLABLE 중 하나를 선택할 수 있다. 마이바티스에게 Statement, PreparedStatement 또는 CallableStatement를 사용하게 한다. 디폴트는 PREPARED이다. |
resultSetType | FORWARD_ONLY|SCROLL_SENSITIVE|SCROLL_INSENSITIVE중 하나를 선택할 수 있다. 디폴트는 셋팅하지 않는 것이고 드라이버에 다라 다소 지원되지 않을 수 있다. |
databaseId | 설정된 databaseIdProvider가 있는 경우 마이바티스는 databaseId 속성이 없는 모든 구문을 로드하거나 일치하는 databaseId와 함께 로드될 것이다. 같은 구문에서 databaseId가 있거나 없는 경우 모두 있다면 뒤에 나온 것이 무시된다. |
resultOrdered | 이 설정은 내포된 결과를 조회하는 구문에서만 적용이 가능하다. true로 설정하면 내포된 결과를 가져오거나 새로운 주요 결과 레코드를 리턴할때 함께 가져오도록 한다. 이전의 결과 레코드에 대한 참조는 더 이상 발생하지 않는다. 이 설정은 내포된 결과를 처리할때 조금 더 많은 메모리를 채운다. 디폴트값은 false 이다. |
INSERT 문
<insert id="메소드명" parameterType="파라미터클래스">
insert into [테이블명] ([칼럼1], [칼럼2], [칼럼3]) values (#{파라미터1}, #{파마미터2}, #{파라미터3})
</insert>
insert절은 위와 같은 문법으로 사용되며 반환하는 결과는 삽입이 실행된 갯수를 반환하므로 결과는 int값으로
항상 반환한다. 따라서 resultType속성은 따로 설정하지 않는다.
UPDATE 문
<update id="메소드명" parameterType="파라미터 클래스">
update [테이블명] set [칼럼1]=#{파라미터1}, [칼럼2]=#{파라미터2}, [칼럼3]=#{파라미터3} where 조건절
</update>
update절의 문법은 위와같고 insert절과 마찬가지로 반환하는 결과는 update된 레코드수를 반환하기 때문에
항상 int값을 반환한다. 따라서 resultType을 따로 지정할 필요가 없다.
DELETE 문
<delete id="메소드명">
delete from [테이블명] WHERE [조건절]
</delete>
like절 검색하기
LIKE CONCAT ('%', #{selectTxt}, '%')
concat은 포함한다는 뜻이며 표기는 이렇게 한다.
selectTxt = 검색값
출처: https://handam.tistory.com/138 [우리는 오랜만에 편히 앉아서 한담을 나누었다]
출처: https://developer111.tistory.com/10 [코딩공장공장장]
'Back End > SQL' 카테고리의 다른 글
[MyBatis/MySql] MyBatis 사용법, 서브쿼리 사용법 (0) | 2022.05.10 |
---|---|
[MyBatis/MariaDB] 그룹함수 / GROUP BY절 / HAVING절 (0) | 2022.01.04 |
[MyBatis/MariaDB] 조건으로 검색 기능 구현하기 2 (0) | 2021.11.05 |
[MyBatis/MariaDB] 페이징 구현하기 2 (0) | 2021.10.28 |
[MyBatis/MariaDB] LAST_INSERT_ID()와 WHERE 1=1에 대하여 (0) | 2021.10.21 |