MyBatis.NET CRUD(2) - mySql DB연동
MyBatis.NET Mapper를 이용한 조회를 앞세션에서 진행했습니다. 수정, 추가, 삭제를 진행해보겠습니다.
데이터 수정
Shippers.xml에statement를 다음과 같이 정의해주세요. 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); //수정후 바로 조회 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
'Language > C#' 카테고리의 다른 글
MyBatis.NET CRUD(1) - mySql DB연동 (0) | 2016.02.04 |
---|---|
MyBatis.NET 기본 및 환경 설정 (0) | 2016.02.04 |
윈폰 프로젝트에서 WCF 서비스 참조할 때 Reference.cs 파일이 비어있는 경우 (0) | 2016.02.04 |
XSL 기본문법 (0) | 2016.02.04 |
XSLT를 이용한 스타일시트 만들기 (0) | 2016.02.04 |