개발 이야기/ORM2012. 4. 15. 12:35

MyBatis.NET CRUD(2)

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

 

데이터 수정

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

 

<update id="UpdateShippers" parameterClass="Shippers">

        UPDATE [Shippers]

        SET CompanyName = #CompanyName#, Phone = #Phone#

        WHERE ShipperID = #ShipperID#

</update>

              

 

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

 

        private void btnUpdate_Click(object sender, EventArgs e)

        {

            try

            {

                Shippers shipper = new Shippers();

                shipper.ShipperID = 4;

                shipper.CompanyName = "SM Company";

                shipper.Phone = "(02)0000-4444";

                Mapper.Instance().Update("UpdateShippers", shipper);

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

        }

              

 

15_01.JPG

[그림 15-1] 수정 결과 화면

 

데이터 신규생성

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

 

<insert id="InsertShippers" parameterClass="Shippers">

        INSERT INTO [Shippers](CompanyName, Phone)

        VALUES (#CompanyName#, #Phone#)

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

               select @@IDENTITY as value

        </selectKey>

</insert>

 

 

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

 

        private void btnInsert_Click(object sender, EventArgs e)

        {

            try

            {

                Shippers shipper = new Shippers();

                shipper.CompanyName = "JS Company";

                shipper.Phone = "(02)1212-4444";

                object obj = Mapper.Instance().Insert("InsertShippers", shipper);

                MessageBox.Show(obj.ToString());

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

        }

              

 

  15_02.JPG

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

 

데이터 삭제

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

 

<delete id="DeleteShippers" parameterClass="Shippers">

        DELETE FROM [Shippers]

        WHERE ShipperID = #ShipperID#

</delete>

 

 

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

 

        private void btnDelete_Click(object sender, EventArgs e)

        {

            try

            {

                Shippers shipper = new Shippers();

                shipper.ShipperID = 4;

                Mapper.Instance().Delete("DeleteShippers", shipper);

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

        }

              

 

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

15_03.JPG

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

 

MyBatis.NET의 장점은?

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

소스코드 : EF4.14.zip 



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

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

Posted by 사나에