개발 이야기/ORM2012.04.15 12:35

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”입니다다른 Provider는 enabled="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 { getset; }

        public string CompanyName { getset; }

        public string Phone { getset; }

    }

 

 

다음은 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파일이 같이 반영되어야 합니다.



sqler에 아티클 작성 했던것을 공유합니다.

출처 : http://www.sqler.com/401728



Posted by 사나에