MyBatis.NET CRUD(1)
MyBatis.NET의 아주 기본적인 작업에 대해서 살펴보려합니다.^^ 프로젝트를 생성하고 데이터를 조회하는데 객체 매핑을 어떻게 하는지 확인 하실 수 있습니다. 실전으로 고고!고!!
프로젝트 생성
우선 간단한 CRUD를 확인하는 작업이기에 응용프로그램을 다음과 같이 디자인 해보겠습니다.
[그림 14-1] UI 구성
초기 작업
Data Mapper작업을 위해서 초기에 설정해줘야하는 작업들이 있습니다. 앞세션에서 관련된 파일들을 언급했었는데요. 해당 파일들이 어떤 역할들을 하는지 살펴보겠습니다. MyBatis.Net 사이트에서 다운 받은 파일 중에 IBatisNet.Common.dll과IBatisNet.DataMapper.dll을 해당 프로젝트에 참조해주세요.
[그림 14-2] dll 참조
\IBatis.DataMapper.1.6.2.bin\Ibatis.DataMapper.1.6.2.bin 폴더에 아래 config 파일이 존재합니다. 프로젝트에 추가해주세요. 새로 만들어도 되지만 xml로 작성되기때문에 오류률을 줄이기위해 가져다 편집을 하는 방법을 선택하겠습니다.
[그림 14-3] config 파일 참조
여기까지 진행하셨다면 다음과 같이 프로젝트가 구성됩니다.
[그림 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 { 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-5] 조회 결과 화면
Tip!
- 배포시 Bin 폴더에 config 파일과 xml파일이 같이 반영되어야 합니다.
sqler에 아티클 작성 했던것을 공유합니다.
출처 : http://www.sqler.com/401728