일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- drag&drop
- spring boot scheduler
- 리스트 관리
- ORA-00600
- flashback
- tomcat 세팅
- 리스트
- Spring
- spring boot batch
- WAS 환경
- tomcat
- spring properties
- Maven #POM.XML
- Spring Boot
- mybatis
- Today
- Total
Hello World?
MyBatis 기본 문법 정리 본문
요즘 MyBatis는 기본으로 쓰이는 프레임워크가 되었다
처음 iBatis 로 시작했을때엔, XML로 적용하면 prepend 가 있어서 쓰기 좋았었는데,
MyBatis로 바뀌면서 사용법을 찾아 다녀야 해서 시간난 김에 정리 해본다
기본 CRUD |
<?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="co.kr.kj.dao.MessageDao"> <!-- @mapper 애노테이션을 사용했기 때문에 DAO 클래스 패스를 모두 써준다 --> <select id="list" parameterType="[parameterClass]" resultType="[resultClass]"> /** co.kr.kj.dao.MessageDao.list */ <!-- 디버깅을 위해 쿼리 아이디를 달아주는걸 습관으로 한다 --> SELECT msg_key , nation_code , msg_type , message FROM T_MESSAGE <where> <!-- where 절 아래에 들어가는 AND은 알아서 잘라준다. 가독성은 ibatis 보다 떨어진다 --> <if test="msgKey != null and msgKey != ''"> AND msg_key = #{msgKey} </if> <if test="msgType != null and msgType != ''"> AND msg_type = #{msgType} </if> </where> ORDER BY msg_key </select> <insert id="insert" parameterType="MessageVo"> /** co.kr.kj.dao.MessageDao.insert */ INSERT INTO T_MESSAGE ( msg_key, nation_code, msg_type, message ) VALUES ( #{msg_key}, #{nation_code}, #{msg_type}, #{message} )
<selectKey keyProperty="id" resultType="String" order="AFTER"> SELECT LAST_INSERT_ID() <!-- MySQL 기준이다. 오라클은 시퀀스의 CurVal 을 반환해주면 된다 --> </selectKey> </insert> <update id="update" parameterType="MessageVo"> /** co.kr.kj.dao.MessageDao.update */ UPDATE T_MESSAGE SET nation_code = #{nationCode} , msg_type = #{msgType} <if test="message != null and message != '' ">, message = #{message} </if> <!-- update시 값을 가지고 넘어오는 데이터만 업데이트 하기 위해 필수값 이외엔 if 문을 달아준다 --> WHERE msg_key = #{msgKey} </update>
<delete id="delete" parameterType="MessageVo"> /** co.kr.kj.dao.MessageDao.delete*/ DELETE FROM T_MESSAGE WHERE msg_key = #{msgKey} </delete> <!-- 프로시져 호출시 아래와 같이 사용 가능하다. 다른 방법도 있다 --> <resultMap id="callSpResult" type="hashmap"></resultMap> <select id="callProcedure" statementType="CALLABLE" parameterType="java.util.HashMap"> CALL SP_TEST( #{aa}, #{result, mode=OUT, jdbcType=VARCHAR, javaType=String, resultMap=callSpREsult} ) </select> <select id="listByIds" parameterType="MessageVo" resultType="MessageVo"> /** co.kr.kj.dao.MessageDao.listByIds* select * from T_MESSAGE where ID IN <foreach collection="idList" item="item" index="index" separator="," open="(" close=")" > #{item} <!-- 리스트 오브젝트를 루프를 돌면서 ( a, b,c ) 와 같은 문법으로 변경시켜 준다 --> <foreach> </select </mapper> |
'JAVA WEB > SPRING' 카테고리의 다른 글
Spring Boot 배치프로그램 개발 3 (MySQL + logback) (0) | 2018.07.02 |
---|---|
Spring Boot 배치프로그램 개발 2 (MySQL + logback) (0) | 2018.07.02 |
Spring Boot 배치 프로그램 개발 (MySQL + Logback) (0) | 2018.07.02 |
SPRING 에서 Message Properties 사용하는 방법 (0) | 2017.07.06 |
SPRING에서 .propertes 파일 사용하기 (1) | 2017.07.06 |