2월 05, 2024

[MyBatis] xml의 SQL Mapper DTD 설치 적용방법

1. MyBatis의 SQL Mapper DTD란?

DTD란 XML의 구조를 정의해주며, SQL Mapper DTD를 가지고 있으면 Eclipse에서 태그 자동완성 뿐 아니라 여러 편리한 기능들을 제공해준다. 


2. DTD 사용하기

XML 상단에 한 줄의 코드만 작성을 하면 쉽게 사용할 수 있다. 

1) iBatis의 경우 

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >

2) myBatis의 경우

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

위와 같이 한 줄만 추가해주면 간단하게 DTD를 사용할 수 있다. 


3. DTD 다운로드 받기

매번 위 링크를 복사에서 모든 xml 상단에 붙여넣기 할 수는 없으므로 다운로드 받는 방법에 대해 다뤄보도록 하겠다. 

https://code.google.com/archive/a/eclipselabs.org/p/mybatiseditor

위 링크에 들어가서 



왼쪽 메뉴에서 Downloads를 클릭해준다. 

그런 다음 가장 위의 파일을 다운받아준다. 


그러면 jar 파일로 파일이 다운로드 될 텐데, 다운된 폴더를 eclipse plugins 폴더에 넣어준다. 


4. 다운받은 DTD 파일로 xml 파일 생성해주기


Control N을 누르면 아래와 같이 새로운 파일을 생성할 수 있는데




여기서 XML을 검색하여 XML File을 클릭, 이후에 파일명을 작성하고 또 Next를 눌러준다. 

다음으로 New XML File 이 뜨면 


가장 첫 번째에 있는 "Create XML file from a DTD file"을 체크하고 Finish를 눌러주면 끝이다.

5. 폐쇄망일 경우 DTD 설치법


폐쇄망을 사용하고 있는 경우 MyBatis Mapper를 작성 시에 Eclipse Editor 상에서 정상적인 XML 문법임에도 불구하고 빨간 줄이 뜨고 오류인 것처럼 나오는 경우가 있다. 
이는 xml DTD의 경우 외부 인터넷이 연결되어야 다운로드가 되는데 외부 접속이 안되는 경우 오류가 난다. 이를 위해서는 외부 DTD를 내부 로컬 개발환경에 복사하여 추가로 ECLIPSE에 설정을 해주면 된다. 

먼저 DTD 압축 파일을 로컬로 옮긴 후 
mybatis-3-config.dtd와 mybatis-3-mapper.dtd 파일을 bin 폴더 안 eclipse- 로 시작하는 폴더에 추가해준다. 

그 뒤에 압축 해제한 파일 중 ".lsp4xml" 폴더를 C:\Users\로그인계정\ 위치에 복붙한다.

다음으로 Window -> Preferences -> XML Catalog라고 검색 


하여 User Specified Entries 를 클릭하고 Add 버튼을 눌러
mybatis-3-config.dtd 파일과 mybatis-3-mapper.dtd 파일을 각각 선택해준다. 

이렇게 하면 외부 인터넷 연결이 안되는 폐쇄망에서도 DTD를 사용할 수 있다.