Toggle theme
문제를 잘 정의하는 것은 문제를 절반 해결한 것이다. - 2023.12
사용자 도구
Toggle theme
로그인
사이트 도구
검색
도구
문서 보기
이전 판
PDF로 내보내기
Fold/unfold all
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
현재 위치:
start
»
wiki
»
spring
»
mybatis
wiki:spring:mybatis
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Mybatis(마이바티스) 사용법, 예시 ====== <WRAP left notice 80%> * description : * author : 주레피 * email : dhan@repia.com * lastupdate : 2020-01-31 </WRAP> <WRAP clear/> ===== mapper.xml 예시 ===== SELECT 예시 <code xml> <select id="boardList" resultType="BoardDto" useCache="true"> select * from tbl_board order by pos asc </select> </code> > resultType이 명시되어야 한다. UPDATE 예시 <code xml> <update id="readCount" parameterType="int"> update tbl_board set count = count + 1 where seq = #{seq} </update> </code> > parameterType은 입력 값이다. DELETE 예시 <code xml> <delete id="deleteBoard" parameterType="map"> delete from tbl_board where seq=#{seq} and password=#{storPass} </delete> </code> > parameterType은 입력 값이다. [[https://hunit.tistory.com/200|MYBATIS로 DB 연동]] INSERT 예시 <code sql> <insert id="insertStudents" useGeneratedKeys="true" keyProperty="id" parameterType="Student"> insert into Students ( name, email ) values ( #{name}, #{email} ) </insert> </code> > selectKey 옵션을 사용하여 오라클에도 적용이 가능하다 <code sql> <insert id="insertStudents" parameterType="Student"> <selectKey keyProperty="id" resultType="int" order="BEFORE"> select SEQ_ID.nexyval FROM DUAL </selectKey> insert into Students (id, name , email) values (#{id}, #{name}, #{email}) </insert> </code> [[http://www.mybatis.org/mybatis-3/ko/sqlmap-xml.html|Mapper XML 파일]] \\ [[https://taetaetae.github.io/2017/04/04/mybatis-useGeneratedKeys/|mybatis insert/update 쿼리실행후 결과 가져오기]] \\ ===== 동적 쿼리 ===== [[http://blog.naver.com/roropoly1/221184569655|myBatis parameterType="String" 일 때 동적쿼리에서 사용]] ===== 배치(Batch) 입력/수정 ===== [[https://vivi-world.tistory.com/13|[Mybatis/MariaDB] foreach 구문을 이용해서 Insert 대량 삽입하기]] \\ [[https://baejangho.com/entry/Java-Mybatis-Batch-Insert|[Java / Mybatis] 일괄(Batch) 입력/수정(Insert/Update)]] \\ ===== choose ===== [[https://kmhan.tistory.com/43|[Mybatis] if else문 대체하는 방법]] \\ ===== Null체크 (ibatis와 비교) ===== >Mybatis <code xml> <if test="stringProperty != null"> 조건문 </if> </code> >ibatis <code xml> <isNotNull property="stringProperty"> 조건문 </isNotNull> </code> [[https://hellogk.tistory.com/100|mybatis와 ibatis별 동적태그 비교문 알아보도록 하자]] \\ [[https://web-obj.tistory.com/246|ibatis to mybatis 전자정부프레임워크]] \\ [[https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:psl:dataaccess:mybatisguide|MyBatis 적용 가이드]] \\ ===== ResultHandler ===== [[https://kongeebol.tistory.com/2|[Excel POI] Mybatis ResultHandler 사용하여 대용량 데이터 추출]] \\ ===== ResultType & ResultMap ===== [[https://dorongdogfoot.tistory.com/124|[MyBatis] resultMap 과 resultType (resultClass) 의 차이점]] \\ ===== Test ===== [[https://sinpk.tistory.com/entry/Mybatis-if-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B9%84%EA%B5%90|Mybatis if 문자열 비교]] \\ [[https://madnix.tistory.com/entry/%EB%A7%88%EC%9D%B4%EB%B0%94%ED%8B%B0%EC%8A%A4%EB%8A%94-%EB%8F%99%EC%A0%81-%EC%BF%BC%EB%A6%AC%EB%AC%B8-%EC%83%9D%EC%84%B1%EC%97%90-%EC%82%AC%EC%9A%A9%EB%90%98%EB%8A%94-if-%EA%B5%AC%EC%84%B1-%EC%9A%94%EC%86%8C%EB%A5%BC-%EC%A0%9C%EA%B3%B5|마이바티스는 동적 쿼리문 생성에 사용되는 <if /> 구성 요소를 제공...]] ===== Tip ===== * DBCP 기본값 <property name="initialSize" value="0"/> <property name="maxActive" value="8"/> <property name="maxIdle" value="8"/> <property name="minIdle" value="0"/> <property name="maxWait" value="-1"/> > initialSize: 연결 풀이 최초 생성될 때 같이 이 숫자만큼 데이터베이스 연결을 미리 생성합니다. 기본값은 0입니다. > maxActive: 동시에 사용할 수 있는 최대 연결의 갯수 입니다. 음수이면 제한이 없습니다. 기본값은 8 입니다. > 이 갯수를 초과하여 요청이 들어오면 최대 maxWait 만큼 대기하고, 그래도 연결을 사용할 수 없을 때는 예외를 발생합니다. > maxIdle: 풀에서 사용되지 않은 상태로 존재할 수 있는 최대 연결의 숫자 입니다. 음수이면 제한이 없습니다. 기본값은 8 입니다. > maxActive가 10 이고, maxIdle이 8일 때 10개의 연결이 모두 사용되고 있는 상태를 가정해 봅니다. 연결이 사용을 마치고 하나씩 반환이 되면 > , maxIdle 숫자인 8개가 될때까지는 유휴 상태로 풀에 남겨집니다. 아홉번째 부터는 연결이 해제되어 제거 됩니다. 모두 반환된후에 풀에는 유휴상태인 8개의 연결이 남아 있습니다. > minIdle: 풀에서 사용되지 않은 상태로 존재할 수 있는 최소 연결의 숫자 입니다. 기본 값은 0 입니다. 풀을 관리하는 쓰레드는 풀내의 유휴 연결의 최소 갯수를 이 값으로 유지합니다. > 주로 발생하는 상황은 오류가 발생한 연결이나, 사용되지 않고 오래된 연결은 풀에서 제거됩니다. 이 경우 풀내의 연결의 갯수가 minIdle 이하로 떨어지면 새로 생성해서 minIdle 갯수에 맞추게 됩니다. > maxWait - 풀에 사용 가능할 연결이 없을때 대기하는 최대 시간을 밀리초 단위로 나타냅니다. 이 대기시간후에도 사용 가능한 연결이 없으면 예외를 발생합니다. -1은 무한대기를 나타냅니다. 기본값은 -1입니다. ===== Troubleshooting ===== DAO에서 보낸 VO가 SQL에서 값이 사라져 버릴 경우 > 긴장하지 말고 pom.xml에서 mybatis, mybatis-spring 버전 업데이트 하면 해결이 됩니다. ===== Ref ===== * [[https://offbyone.tistory.com/161|전자정부 표준프레임워크 - dataSource (DBCP) 설정하기]] * [[http://blog.naver.com/roropoly1/221184569655|myBatis parameterType="String" 일 때 동적쿼리에서 사용]] * [[https://jsonobject.tistory.com/240|MyBatis, Dynamic SQL 기본식 알아보기]] {{tag>주레피 eleven mybatis}}
/volume1/web/dokuwiki/data/pages/wiki/spring/mybatis.txt
· 마지막으로 수정됨: 2023/01/13 18:44 (바깥 편집)
문서 도구
문서 보기
이전 판
역링크
PDF로 내보내기
Fold/unfold all
맨 위로