본문 바로가기
카테고리 없음

C# iBatis.Net 환경설정

by jyee 2025. 7. 31.
728x90
반응형

Backgroud

  • Javascript, HTML, CSS
  • Jquery, Jqgrid, Select2
  • C#(Back-end, .NET CORE) VisualStudio 2019 
  • Database Access (IBatis.Net)
  • DB: Oracle

먼저 visual studio 2019 확장관리에서 라이브러리 다운 받을려고 했는데 버전 문제로 설치 자체가 안된다고 뜨길래 직접 다운 받는 방법을 찾아보았다. 

 

1. 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

 

2.iBatis 관련 파일 추가하기 

아까 다운 받은 애들을 압축풀기로 풀어서 이제 이렇게 빨간색 도형으로 표시된 관련 파일들을 프로젝트에 추가해줘야 한다. 

vscode처럼 드래그드롭이 되는 줄 알았는데 vs2019는 안되길래 찾아보니 참조 추가로 해야되는 것이였다.

 

참조추가 하는 방법은 먼저 저 참조 우클릭하고 참조 추가라는게 뜬다 .

그리고 찾아보기를 통해 관련 파일들을 다 넣어주고 확인을 누르면 파일들이 추가가 된다.

 

이제 참조 쪽 추가 파일들은 넣었고 나머지 iBatis 설정 파일에 넣어야 할 두 개 파일이 남았다.

config 파일 추가 하기 ibatis.DataMapper.1.6.2.bin.zip 압축을 풀면 이렇게 나오고 

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

이 두 파일은 참조에 넣는게 아니라 프로젝트 최상단에 추가해주면 된다!

 

** sqlMap.config는 처음에 sample.SqlMap.config라고 되어 있었는데 파일이름을 변경했다

 


이제 파일들을 내가 필요한 환경에 맞게끔 설정을 해줘야 하는데 

 

 

1. providers.config 

최상단에 배치된 providers.config를 수정하자면, 안에 여러개의 provider이 들어가 있는데 나는 사용할려는게 oracleClient1.0이였기에 이것만 남기고 나머지는 삭제해버렸다. 

 

2.SqlMap.config 

이 파일도 프로젝트 폴더 최상단에 배치 되었고 여기에 database connect information 주석 된 부분에 보면 dataSourcename과 connetctionString에 데이터베이스 userId, password까지 같이 바꿔주면 된다. 
userId랑 password 어떻게 아는건데?  oracle DB였던 나는 tnsnames.ora 를 통해서 확인하였다

그리고 sqlMap에 포함시킬 mapper(Sql Xml)파일도 추가하고 마무리 하면 됨 

	<sqlMaps>
		<!-- sql문 작성한 xml 파일 경로 찾아줘야 함 -->
		<sqlMap resource="./sqlFile.xml" />
	</sqlMaps>

 

 

3.sqlFile.xml 

사진 속 쿼리는 내가 사용해야할 DB 확인 용으로 한거라 이렇게 되어있는데 실제로는 간단하게 본인 데이터베이스 테이블에 맞게 설정하면 된다. 그리고 alias는 옵션이라 사용안해도 무방

 <alias>
   <typeAlias alias="UserModel" type="Common.Models.UserModel" />
 </alias>

 <statements>
   <statement id="GetUserByEmail" parameterClass="UserModel" resultClass="UserModel">
      SELECT *
      FROM T_USER_INFO
      WHERE EMAIL = #Email#
    </statement>
 </statements>

 

 


연결 되었는지 테스트 해보기

 

728x90
반응형