본문 바로가기

Language/C#

MyBatis.NET CRUD(2) - mySql DB연동

MyBatis.NET CRUD(2) - mySql DB연동

MyBatis.NET Mapper를 이용한 조회를 앞세션에서 진행했습니다수정, 추가, 삭제를 진행해보겠습니다.

데이터 수정

Shippers.xmlstatement를 다음과 같이 정의해주세요. Shippers 테이블 업데이트 구문입니다.

<update id="UpdateTest" parameterClass="test">

UPDATE mybatistest

SET name = #name#, age = #age#

WHERE id = #id#

</update>

수정 버튼을 클릭했을때 Mapper클래스를 이용해서 Update메서드에 위에서 정의한 UpdateTest ststement명을 작성해줍니다이렇게 되면 Mapper클래스는 ststement명을 찾아 해당 쿼리를 DB에 던지게 되죠~

privatevoid btnUpdate_Click(object sender, EventArgs e)

{

try

{

test test = new test();

test.id = 3;

test.name = "honggildong";

test.age = 39;

Mapper.Instance().Update("UpdateTest", test);

//수정후 바로 조회
IList<test> list = Mapper.Instance().QueryForList<test>("SelectTest", null);

dataGridView1.DataSource = list;

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

}

[그림 1] 수정 결과 화면

 

데이터 신규생성

데이터 신규생성 작업입니다. Shippers.xml insert statement를 작성해주시고요.

<insert id="InsertTest" parameterClass="test">

INSERT INTO mybatistest(name, age)

VALUES (#name#, #age#)

<selectKey type="post" resultClass="int" property="id">

select @@IDENTITY as value

</selectKey>

</insert>

코드에서 다음과 같이 호출해주세요.

privatevoid btnInsert_Click(object sender, EventArgs e)

{

try

{

test test= new test();

test.name= "tipany";

test.age= 24;

object obj = Mapper.Instance().Insert("InsertTest", test);

MessageBox.Show(obj.ToString());

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

}

[그림 15-2] 추가 후 결과 화면

 

데이터 삭제

마지막으로 데이터 삭제입니다. Shippers.xml에 delete statement가 필요하겠죠다음과 같이 작성해주세요.

<delete id="DeleteTest" parameterClass="test">

DELETE FROM mybatistest

WHERE id= #id#

</delete>

코드는 다음과 같이 삭제메서드를 호출해주시면 됩니다유후~훗 그럼 실행해서 확인해볼까요?

privatevoid btnDelete_Click(object sender, EventArgs e)

{

try

{

test test = new test();

test.id= 2;

Mapper.Instance().Delete("DeleteTest", test);

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

}

요청한 2번 항목이 사라졌네요^^ 끝까지 따라해주시느라 수고많으셨습니다.!!!!

[그림 15-3] 삭제 후 결과 화면

 

MyBatis.NET의 장점은?

ORM하면 대표적을 생각하는 프레임워크 중에 하나인 MyBatis.NET 실제로 작업을 해보니 xml파일을 핸들링하는 것과 중간에 Mapper를 통해서 데이터 결과를 받아오는 등의 작업이 귀찮지않다고 한다면 거짓말 일 것이다그럼에도 불구하고 사랑을 받고 있는 MyBatis.NET의 장점은 무엇이 있을까요레거시 시스템 경우 기존 데이터베이스 연동을 해야하는 경우에 중간 매퍼를 통해서 처리함으로 관리 측면의 용이성이 있습니다또한 파일로 관리되기때문에 실제 로직 실행시에 파일을 읽어와서 처리하게 됩니다 그러기에 파일을 얼마든지 수정가능하겠죠?! 결국은 코드에 쿼리문이 작성되지않고 별도로 관리된다는 측면에서 많은 이점을 가질 수 있을듯합니다더 많은 장점은 여러분이 사용해보면서 느끼는 점을 같이 이야기 해볼 수 있으면 좋겠습니다.^^ 감사합니다.

출처 : www.sqler.com