IT/Ibatis

[Ibatis] Ibatis 설정

lejh 2020. 10. 4. 14:30

Ibatis 다운로드 링크 : https://code.google.com/archive/p/mybatisnet/downloads

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

code.google.com

다운로드 리스트

1. ConsoleApplication1.7z

2. IBatis.DataMapper.1.6.2.bin.zip

 

간단한 예시를 위해서 ConsoleApplication1.7z(Ibatis에서 제공하는 샘플코드)를 다운 받습니다. 실 업무에서는 다운 안받으셔도 됩니다.

 

Ibatis 설정 

Ibatis 관련 파일

프로젝트를 생성하게되면 위 이미지와 다르게 빨간색 네모로 표시한 부분들이 없습니다.

 

프로젝트를 생성 후 참조에 Ibatis를 추가 해주셔야합니다.

 

Ibatis 관련 파일 참조 추가

확인을 누르게 되면 Ibatis 관련 파일들이 참조로 추가가 됩니다.

 

iBatis DLL 파일
// 프로젝트 참조에 추가
Castle.DynamicProxy.dll (option)
log4net.dll (option)
IBatisNet.Common
IBatisNet.Common.Logging.Log4Net
IBatisNet.DataMapper


iBatis 설정 파일
//프로젝트 폴더 최상단에 배치

providers.config
SqlMap.config

 

Config 파일 추가

 

IBatis.DataMapper.1.6.2.bin.zip

IBatis.DataMapper.1.6.2.bin.zip을 압축풀면 위 이미지 처럼 파일이 풀립니다.

 

providers.config

sample.SqlMap.config -> SqlMap.config로 이름 변경(option)

 

providers.config, SqlMap.config 파일 두개를 복사해서 프로젝트 최상단에 추가 해주시면 됩니다.

 

Config 파일 추가 예

 

1. providers.config

- 데이터 베이스의 드라이버를 설정해주는 파일

- 프로젝트 최상단에 배치

- providers 라는 태그안에 여러개의 provider를 넣어두고 그 중에 하나의 provider를 선택해서 사용하는 방식

- default 속성을 사용하여 기본으로 사용할 provider를 설정

 

위에 샘플코드는 sqlServer를 기준으로 코드가 작성 되있지만 실제 사용할때는 데이터베이스에 맞는 provider를 추가 해주시면 됩니다.

 

2. SqlMap.config

- 데이터 베이스의 커넥션 정보가 들어갈 파일

- 프로젝트 폴더 최상단에 배치

<database>
   <provider name="sqlServer2.0" />
   // 데이터 베이스 정보
   <dataSource name="SalesData" 
   connectionString="Data Source=(local);
   Initial Catalog=4.0.0.0.LOCAL.JetsonWebPortal;
   Integrated Security=True"/>
</database>

 

<sqlMaps>
   // sqlMap에 포함시킬 mapper(Sql Xml)파일을 추가
   <sqlMap embedded="sqlFile.xml, ConsoleApplication1" />
</sqlMaps>

실제 사용 시에는 connectionString 부분에 Local을 데이터 베이스 서버 IP이나 hostname으로 설정 하시면 됩니다.

 

3. sqlFile.xml

 <alias>
   // UserModel 객체로 파라미터, 리턴 받고 싶을때 설정
   <typeAlias alias="UserModel" type="Common.Models.UserModel" />
 </alias>

 <statements>
   // alias를 설정 안하면 UserModel 패키지 주소를 전부 명시
   <statement id="SelUserInfo" parameterClass="UserModel" resultClass="UserModel" >
      SELECT *
      FROM T_USER_INFO
      WHERE User_Id =  #Id#
   </statement>
 </statements>

위 코드는 샘플로 제공하는 쿼리를 제가 사용하는 쿼리로 예시로만 변경하였습니다. 혹시 따라 하고싶으신 분들은 alias는 옵션이기 때문에 사용하셔도되고 안하셔도 됩니다. 

 

꼭 알아둬야 하는 부분

- namespace : VO에서 namespace로 mapper들을 구분

- #변수명# : VO 내부 변수명

 

사용 예

executeFunction 메서드는 mapper 객체를 생성한 후 

mapper.QueryForObject<UserModel>("TestApp.SelUserInfo", new UserModel() { Id = "Test1234"}); 이와 같은 방식으로 쿼리를 실행 합니다.

 

매개변수 설명

- <> : 리턴 값 ex) int, string, char, UserModel(객체) 등

- 첫번째 매개변수 : Mapper이름.쿼리명

- 두번째 매개변수 : Mapper이름.쿼리에 전달할 파라미터 값

'IT > Ibatis' 카테고리의 다른 글

[Ibatis] <selectKey> 사용 예제  (0) 2020.10.11
[Ibatis] Ibatis 사용법 및 예제  (0) 2020.09.29
[Ibatis] Dynamic Query SQL  (0) 2020.09.29
[Ibatis] Ibatis(아이바티스) 개념  (0) 2020.09.28