MyBatis.NET CRUD(1)

MyBatis.NET의 아주 기본적인 작업에 대해서 살펴보려합니다.^^ 프로젝트를 생성하고 데이터를 조회하는데 객체 매핑을 어떻게 하는지 확인 하실 수 있습니다. 실전으로 고고!!!

 

프로젝트 생성

우선 간단한 CRUD를 확인하는 작업이기에 응용프로그램을 다음과 같이 디자인 해보겠습니다.

14_01.jpg

[그림 14-1] UI 구성

 

초기 작업

Data Mapper작업을 위해서 초기에 설정해줘야하는 작업들이 있습니다. 앞세션에서 관련된 파일들을 언급했었는데요. 해당 파일들이 어떤 역할들을 하는지 살펴보겠습니다. MyBatis.Net 사이트에서 다운 받은 파일 중에 IBatisNet.Common.dllIBatisNet.DataMapper.dll을 해당 프로젝트에 참조해주세요.

14_02.jpg

[그림 14-2] dll 참조

 

\IBatis.DataMapper.1.6.2.bin\Ibatis.DataMapper.1.6.2.bin 폴더에 아래  config 파일이 존재합니다. 프로젝트에 추가해주세요. 새로 만들어도 되지만 xml로 작성되기때문에 오류률을 줄이기위해 가져다 편집을 하는 방법을 선택하겠습니다.

14_03.JPG

[그림 14-3] config 파일 참조

 

여기까지 진행하셨다면 다음과 같이 프로젝트가 구성됩니다.

14_04.jpg

[그림 14-4] 프로젝트 구성

 

Config 파일 설정

providers.config 파일 내용을 확인하면 많은 DBMS Provider가 정의되어 있습니다. 저희가 사용하는 Provider“sqlServer2.0”입니다. 다른 Providerenabled="false" 해주시고  “sqlServer2.0”는 는 enabled="true" 설정해주세요.

<provider name="OleDb1.1"

          description="OleDb, provider V1.0.5000.0 in framework .NET V1.1"

          enabled="true"

          assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

    connectionClass="System.Data.OleDb.OleDbConnection"

          commandClass="System.Data.OleDb.OleDbCommand"

          parameterClass="System.Data.OleDb.OleDbParameter"

          parameterDbTypeClass="System.Data.OleDb.OleDbType"

          parameterDbTypeProperty="OleDbType"

          dataAdapterClass="System.Data.OleDb.OleDbDataAdapter"

          commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder"

          usePositionalParameters="true"

          useParameterPrefixInSql="false"

          useParameterPrefixInParameter="false"

          parameterPrefix=""

    allowMARS="false"   

    />

 

 

다음은 SqlMap.config 파일입니다. 데이터베이스 연결 영역에 다음과 같이 DB 연결설정을 해주세요. 수동으로 작업하고있자니 기존에 자동생성했던 기억에 서글퍼지네요 ㅠㅠ.

        <!-- Database connection information -->

        <database>

               <provider name="sqlServer2.0"/>

               <dataSource name="Northwind" connectionString="Data Source=JISEON;Initial Catalog=Northwind;Integrated Security=True;"/>

        </database>

 

 

데이터 조회

기본 설정이 마무리 되었으니 이제부터 데이터를 한번 조회해보겠습니다. MyBatis는 쿼리와 결과 데이터의 매퍼 역할을 하는 프레임워크입니다. 그래서 단순히 매퍼 역할만하게되는데요. 그 부분을 xml로 정의합니다. Northwind 데이터베이스에서 Shippers 테이블을 조회할건데요. 프로젝트에 매퍼 역할을 하는 Shippers.xml 파일을 생성해주세요. 또한 응용프로그램에서 용이하게 사용하는 Shippers의 엔티티를 Shippers.cs로 구성해보겠습니다.

Shippers.cs는 다음과 같이 작성해주세요.

 

    public class Shippers

    {

        public int ShipperID { get; set; }

        public string CompanyName { get; set; }

        public string Phone { get; set; }

    }

 

 

다음은 Shippers.xml 내용을 확인해보죠!! Select statement를 다음과 같이 작성해주면 됩니다.

<?xml version="1.0" encoding="utf-8" ?>

 

<sqlMap namespace="EF4._14" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ibatis.apache.org/mapping">

 

        <alias>

               <typeAlias alias="Shippers"  type="EF4._14.Shippers" />

        </alias>

 

       <statements>

             <select id="SelectShippers"  resultClass="Shippers">

                    select * from Shippers

             </select>

       </statements>

 

</sqlMap>

 

 

UI에 다음 네임스페이스를 추가해주시고요.

 

using IBatisNet.Common;

using IBatisNet.DataMapper;

 

 

조회 버튼을 클릭해서 데이터를 조회해보겠습니다. Mapper 객체를 통해서 데이터를 조회하여 결과값을 리턴합니다.

 

        private void btnSelect_Click(object sender, EventArgs e)

        {

            try

            {

                IList<Shippers> list = Mapper.Instance().QueryForList<Shippers>("SelectShippers", null);

                dataGridView1.DataSource = list;

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

        }

 

 

조회된 화면입니다. 조회를 한번하기위해 긴여정을 걸쳤습니다. 그래도 MyBatis를 사용하는 장점이 뭔가 있겠죠?! 다음편에서 그 진실을 파헤져보겠습니다.

14_05.jpg

[그림 14-5] 조회 결과 화면

 

Tip!

-       배포시 Bin 폴더에 config 파일과 xml파일이 같이 반영되어야 합니다.




Entity Framework, MyBatis.NET, NHibernate 강좌 리스트
[Entity Framework 강좌] 01. Entity Framework 들어가기
[Entity Framework 강좌] 02. Entity Framework 4.0 기능 살펴보기
[Entity Framework 강좌] 03. LINQ 알고가자
[Entity Framework 강좌] 04. Database-First VS Model-First
[Entity Framework 강좌] 05. Entity Framework Context
[Entity Framework 강좌] 06. Entity Framework - Entity CRUD
[Entity Framework 강좌] 07. Entity Framework - Entity Stored Procedure 활용(1)
[Entity Framework 강좌] 08. Entity Framework - Entity Stored Procedure 활용(2)
[Entity Framework 강좌] 09. Entity Framework – ASP.NET MVC(1)
[Entity Framework 강좌] 10. Entity Framework – ASP.NET MVC(2)
[Entity Framework 강좌] 11. Entity Framework – ASP.NET MVC(3)
[MyBatis강좌] 12. MyBatis.Net 들어가기
[MyBatis강좌] 13. MyBatis.NET 기본 및 환경 설정
[MyBatis강좌] 14. MyBatis.NET CRUD(1)
[MyBatis강좌] 15. MyBatis.NET CRUD(2)
[NHibernate강좌] 16. NHibernate 들어가기
[NHibernate강좌] 17. NHibernate xml 파일
[NHibernate강좌] 18. NHibernate 실전 - Object Relational Mapping
[NHibernate강좌] 19. NHibernate 실전 - CRUD(1)
[NHibernate강좌] 20. NHibernate 실전 - CRUD(2)






profile