Micro ORM Dapper VB.Net 2013 SQL Server

Halo sobat blogger,

kali ini saya akan berbagi tentang ORM (Object Relational Mapping), 
Apa itu ORM...???

Object Relational Mapping (ORM) adalah sebuah framework yang dapat
menjembatani perbedaan sistembasis data yang bersifat relational dengan paradigma
pengembangan aplikasi yang berorientasi objek. Setiap objek yang akan memetakan
menjadi tabel-tabel pada basis data relasional dibungkus oleh suatu interface dengan
menerapkan konsep design pattern. Hal tersebut bertujuan untuk memudahkan lapisan
aplikasi (controller) mengakses data tersebut.
Untuk para developer yang telah menggunakan ORM seperti Linq to Sql, EF
maupun NHibernate pasti akan merasakan benefitnya seperti productivity maupun
maintability pada saat membangun aplikasi. Yang menjadi pertanyaan bagaimanakah performa aplikasi yang menggunakan ORM ini? Salah satu isu yang masih “menghantui”
ORM adalah masalah performa dalam pengaksesan data pada Database.
Bagi para developer yang ingin menggunakan ORM dengan performa yang lebih
baik dapat menggunakan Micro ORM. Terdapat banyak Micro ORM pada .Net seperti
Dapper, Peta POCO, FluentData dan lain-lain. Kebanyakan Micro ORM menggunakan
single file dan sangat mudah untuk menggunakannya pada suatu project. Pada artikel ini
akan dijelaskan bagaimana cara menggunakan salah satu Micro ORM yaitu Dapper.

Sumber : http://junindar.blogspot.co.id/2014/12/pengenalan-dapper-micro-orm-pada-vb-2013.html


Untuk mengetahui lebih lanjut, mari kita memulai membuat ORM :D

pertama kita buat database dulu di SQL Server

create database dbToko

create table produk(
       kodeProduk int primary key,
       namaProduk varchar(100),
       harga int,
       jumlah int
)

Selanjutnya kita buat stored procedure untuk proses insert, update, delete, dan select 

1. Sp Insert Produk

CREATE PROCEDURE sp_InsertProduk
       -- Add the parameters for the stored procedure here
       @kodeProduk int,
       @namaProduk varchar(100),
       @harga int,
       @jumlah int
AS
BEGIN
       -- SET NOCOUNT ON added to prevent extra result sets from
       -- interfering with SELECT statements.
       SET NOCOUNT ON;

       Insert Into produk values(@kodeProduk,@namaProduk,@harga,@jumlah)
END


2. Sp Update Produk

CREATE PROCEDURE sp_UpdateProduk
       -- Add the parameters for the stored procedure here
       @kodeProduk int,
       @namaProduk varchar(100),
       @harga int,
       @jumlah int
AS
BEGIN
       -- SET NOCOUNT ON added to prevent extra result sets from
       -- interfering with SELECT statements.
       SET NOCOUNT ON;

       Update produk Set namaProduk = @namaProduk, harga = @harga,
       jumlah = @jumlah Where kodeProduk = @kodeProduk
END

3. Sp Delete Produk

CREATE PROCEDURE sp_DeleteProduk
       -- Add the parameters for the stored procedure here
       @kodeProduk int
AS
BEGIN
       -- SET NOCOUNT ON added to prevent extra result sets from
       -- interfering with SELECT statements.
       SET NOCOUNT ON;

       Delete Produk Where kodeProduk = @kodeProduk
END


4. Sp Select Produk By Kode Produk


CREATE PROCEDURE sp_SelectProdukByKode
       -- Add the parameters for the stored procedure here
       @kodeProduk int
AS
BEGIN
       -- SET NOCOUNT ON added to prevent extra result sets from
       -- interfering with SELECT statements.
       SET NOCOUNT ON;

       Select * From produk Where kodeProduk = @kodeProduk

END

5. Sp Select Semua Produk 

CREATE PROCEDURE sp_SelectProduk
       -- Add the parameters for the stored procedure here
      
AS
BEGIN
       -- SET NOCOUNT ON added to prevent extra result sets from
       -- interfering with SELECT statements.
       SET NOCOUNT ON;

       Select * From produk

END


Ok, Selanjutnya kita buat visual basic project di visual studio.
untuk projectnya pilih yang Class Library, untuk nama projectnya DataAccess seperti gambar berikut :


Setelah membuat project, sekarang kita menambahkan library Dapper kedalam project, untuk menambahkan library harus terkoneksi dengan internet, caranya pilih TOOLS -> Library Package Manager -> Manage NuGet Packages Solution seperti pada gambar berikut :


Setelah proses Instalasi dapper selesai, tambahkan tiga(3) folder pada project, IDAO, DAO, dan Entity. 

Pada Folder Entity tambahkan sebuah Class dengan nama Produk Seperti Dibawah ini :

Public Class Produk
    Public Property KodeProduk() As String
    Public Property NamaProduk() As String
    Public Property Harga() As String
    Public Property Jumlah() As String
End Class

Pada Folder IDAO tambahkan sebuah Interface dengan nama IProdukDAO Seperti Dibawah ini :

Public Interface IProdukDAO
    Sub InsertProduk(ByVal Entity As Produk)
    Sub UpdateProduk(ByVal Entity As Produk)
    Sub DeleteProduk(ByVal KodeProduk As String)
    Function SelectProduk() As List(Of Produk)
    Function SelectProdukByKode(ByVal KodeProduk As String) As Produk
End Interface

Pada Folder DAO tambahkan sebuah Class dengan nama ProdukDAO Seperti Dibawah ini :

Imports System.Data.SqlClient
Imports Dapper

Public Class ProdukDAO
    Implements IProdukDAO

    Dim cmdAction As SqlCommand
    Dim server As String = "Server = .\SQLEXPRESS; Database = dbToko; Integrated Security = true"

    Public Sub DeleteProduk(KodeProduk As String) Implements IProdukDAO.DeleteProduk
        Using mycon As SqlConnection = New SqlConnection(server)
            mycon.Open()
            mycon.Query("sp_DeleteProduk", New With {KodeProduk},
            commandType:=CommandType.StoredProcedure)
        End Using
    End Sub

    Public Sub InsertProduk(Entity As Produk) Implements IProdukDAO.InsertProduk
        Using mycon As SqlConnection = New SqlConnection(server)
            mycon.Open()
            mycon.Query("sp_InsertProduk", Entity,
            commandType:=CommandType.StoredProcedure)
        End Using
    End Sub

    Public Function SelectProduk() As List(Of Produk) Implements IProdukDAO.SelectProduk
        Using mycon As SqlConnection = New SqlConnection(server)
            mycon.Open()
            Return mycon.Query(Of Produk)("sp_SelectProduk",
            commandType:=CommandType.StoredProcedure)
        End Using
    End Function

    Public Function SelectProdukByKode(KodeProduk As String) As Produk Implements IProdukDAO.SelectProdukByKode
        Using mycon As SqlConnection = New SqlConnection(server)
            mycon.Open()
            Return mycon.Query(Of Produk)("sp_SelectProdukByKode", New With {KodeProduk},
            commandType:=CommandType.StoredProcedure).FirstOrDefault()
        End Using
    End Function

    Public Sub UpdateProduk(Entity As Produk) Implements IProdukDAO.UpdateProduk
        Using mycon As SqlConnection = New SqlConnection(server)
            mycon.Open()
            mycon.Query("sp_UpdateProduk", Entity,
            commandType:=CommandType.StoredProcedure)
        End Using
    End Sub
End Class

Sampai disini DataAccess nya sudah selesai, selanjutnya kita tambahkan satu buah project baru didalam project dengan cara pilih menu File seperti pada gambar dibawah, projectnya yang ditambahkan adalah WindowsForm Application


Nama Projecnya Terserah, bebas sesuai keinginan :D
jika sudah desain form seperti dibawah ini :


Jika sudah Masukkan Source Code dibawah ini :

Imports DataAccess
Public Class Form1

    Dim MyProdukAccess As IProdukDAO = New ProdukDAO()
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            Dim produk As New Produk With {.KodeProduk = TextBox1.Text,
            .NamaProduk = TextBox2.Text, .Harga = TextBox3.Text, .Jumlah =
            TextBox4.Text}

            MyProdukAccess.InsertProduk(produk)
            bindGrid()
            clearForm()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Try
            Dim produk As New Produk With {.KodeProduk = TextBox1.Text,
            .NamaProduk = TextBox2.Text, .Harga = TextBox3.Text, .Jumlah =
            TextBox4.Text}

            MyProdukAccess.UpdateProduk(produk)
            bindGrid()
            clearForm()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        MyProdukAccess.DeleteProduk(TextBox1.Text)
        bindGrid()
    End Sub

    Sub clearForm()
        TextBox1.Clear()
        TextBox2.Clear()
        TextBox3.Clear()
        TextBox4.Clear()

    End Sub

    Sub bindGrid()
        DataGridView1.DataSource = MyProdukAccess.SelectProduk()
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            bindGrid()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

    Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        Try
            If DataGridView1.Rows(e.RowIndex).Cells("KodeProduk").Value <> Nothing Then
                Dim myProduk As Produk = MyProdukAccess.SelectProdukByKode(DataGridView1.Rows(e.RowIndex).Cells("KodeProduk").Value.ToString())
                TextBox1.Text = myProduk.KodeProduk
                TextBox2.Text = myProduk.NamaProduk
                TextBox3.Text = myProduk.Harga
                TextBox4.Text = myProduk.Jumlah
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        clearForm()
    End Sub
End Class


Project-nya bisa Di Download Disni

Semoga Bermanfaat...

Happy Sharing :D

Comments

Popular posts from this blog

PHP MySql CRUD Dengan Konsep MVC

Laravel - Sistem Informasi Perpustakaan Sederhana Laravel

IT Asset Management Dengan PHP MySQL