본문 바로가기

MyBatis

(5)
Mybatis resultMap 1:N 조회 ( one to many ) resultMap을 이용한 1:N select시 주의점 mybatis에서 테이블간의 1:N관계를 select 할때 resultMap을 통한 일종의 서브쿼리 형식으로 데이터를 가져올수 있다. 예를들어 게시판(BOARD)라는 테이블과 댓글(COMMENT)라는 테이블이 있고, 하나의 게시글에는 여러개의 댓글이 생성될수 있음으로 게시판과 댓글의 관계는 1:N관계이다. 이런 구조를 자바 코드로 클래스를 만들어 보면 다음과 같다. class Board{ private String board; private String title; private String content; private String writer; private List comments; //getter, setter 생략}소스에서도 볼수 있듯이 B..
Java - Mybatis연동 ( 프로시저 호출 ) # 개요 앞번글인 "일반 DML호출"에서 프로시저부분만 추가하였다 # 프로시저 주의점은 프로시저를 생성시 프로시저내부 구문이 오류되었을경우단지 자바의 오류내용으로는 알기 힘들다. 따라서 프로시저는 sql tool을 이용하여 구문이 오류가 있는지 확인하여야한다.간단히 프로시저 오류확인법은 다음과 같다.SELECT OBJECT_NAME, STATUSFROM USER_OBJECTSWHERE OBJECT_NAME ='프로시저명' # 소스 메인자바 ( 역시 to와 hashmap 방식 두가지 모두 구현했다 )// 프로시저 호출( hashmap이용 )HashMap map1 = new HashMap();map1.put("SEQ", 1);map1.put("TITLE", "재주");map1.put("CONTENT", "ㅇ..
Java - Mybatis ( 일반 DML 호출 ) 필요 lib : mybatis.jar , ojdbc6 , 톰캣 # 개요 Java로 Mybatis사용시 데이터를 가져오는 방식은 to방식과 Map방식이 있다. 이 두가지 방법을 구현해 보겠다. 1. to방식to방식은 새로 하나 추가되서 두가지가 있는데 xml이용과 인터페이스이용법이다. 1) xml이용시 parameter로 사용될시 대소문자구분( 이유는 #{seq} 와 #{SEQ}는 다름 ) result로 사용시 대소문자 구분안함 2) 인터페이스이용시 매퍼.xml이 사라지고 인터페이스에서 어노테이션에 쿼리를 주는방식 2. Map방식 ( hashmap ) Test.java -- 메인메서드import java.io.*;import java.util.HashMap;import org.apache.ibatis.io..
Mybatis 동적쿼리 # Mybatis 동적태그 ( 기존 ibatis의 isEqual, isNull, isEmpty, isNotEmpty 등을 하나로 )WHERE 1=1 AND_ID = #{empId} , ( 오라클의 case문과비슷 )WHERE 1=1 AND TITLE LIKE #{title} AND TITLE LIKE #{content} AND DEL_YN = 'N' , ( 조건에따라 where절 추가할때 )SELECT COUNT(*) FROM USER AND USER_ID = #{id} AND USER_PW = #{pw} trim태그를 위와같이 사용시 맨처음 and나 or을 where로 바꿈!! ( 동적으로 update구문 만들때 )UPDATE MST_USER EMAIL = #{email}, ADDRESS = #{add..
00. ( parameterType vs parameterMap ) and ( resultType vs resultMap ) 일단 parameterType만쓰고 parameterMap은 비권장됨( 오피셜 ) # parameterMapparameterMap은 외부 parameterMap을 찾기 위한 비권장된 접근방법으로서 인라인 파라미터 매핑과 parameterType을 대신 사용하길 권장함 # parameterTypeparameterType - 구문에 전달될 파라미터의 패키지 경로를 포함한 전체 클래스명이나 별칭 ( 별칭은 설정파일에 등록하면 사용가능. vo,to등을 등록해야 전체 패키지명을 써야하는 불편함을 없앰 ) ( 이외에도 자바타입의 내장된 별칭이 존재함( 대소문자 구분 ) String -> string Integer -> int, integer Map -> map HashMap -> hashmap Collection ..