18
May
09

Object Mapping (Bagian 2)

Perhatikan class CustomerDao


using System;
using System.Data;
using System.Data.SqlClient; 

namespace DAO
{
    public class CustomerDao
    {
        private SqlConnection conn; 

        public CustomerDao()
        {
            this.conn = ConnectionService.GetConnection();
        } 

        public SqlDataReader Read()
        {
            SqlDataReader rdr = null;
            try
            {
                string sql = "SELECT * FROM Customers";
                SqlCommand cmd = new SqlCommand(sql, conn);
                rdr = cmd.ExecuteReader();
            }
            catch (SqlException sqlex)
            {
                throw new Exception(sqlex.Message.ToString()); 

            }
            return rdr;
        }
    }
}

Method Read() memiliki return value rdr yang bertipe SqlDataReader. Bisa dikatakan method
tersebut mengembalikan record/row dari tabel bukannya objek Customer, padahal kita sudah
buatkan Business Object nya. Agar code kita lebih bernuansa OOP, row ini akan dipetakan
menjadi objek, satu row akan diwakili oleh satu objek.

Method Read() dipisah jadi 2 method yaitu GetById() dan GetAll()


public Customer GetById(string customerId)
{
    Customer customer = null;
    try
    {
         string sql = "SELECT * FROM Customers WHERE CustomerId='"
                     + customerId + "'"; 

         SqlCommand cmd = new SqlCommand(sql, conn);
         SqlDataReader rdr = cmd.ExecuteReader(); 

         if (rdr.Read())
         {
              Customer customer = new Customer();
              customer.CustomerId = rdr["CustomerId"].ToString();
              customer.CompanyName = rdr["CompanyName"].ToString();
              customer.ContactName = rdr["ContactName"].ToString();
         }
     }
     catch (SqlException sqlex)
     {
         throw new Exception(sqlex.Message.ToString());
     }
      return customer;
} 

Method GetByID() digunakan untuk mencari data Customer berdasarkan CustomerID tertentu.
Jika row ada akan dimapping ke objek supplier. Isi Field ditabel Customers akan dimapping ke
property class Customer. Dengan demikian method GetById() return valuenya objek customer.
Jika ingin mendapatkan semua record dari tabel Customers, gunakan method GetAll()


public List<Customer> GetById(string customerId)
{
    List<Customer> customer = new List<Customer>();
    try
    {
         string sql = "SELECT * FROM Customers"; 

         SqlCommand cmd = new SqlCommand(sql, conn);
         SqlDataReader rdr = cmd.ExecuteReader(); 

         while (rdr.Read())
         {
              Customer customer = new Customer();
              customer.CustomerId = rdr["CustomerId"].ToString();
              customer.CompanyName = rdr["CompanyName"].ToString();
              customer.ContactName = rdr["ContactName"].ToString(); 

              list.Add(customer); 

          }
     }
     catch (SqlException sqlex)
     {
         throw new Exception(sqlex.Message.ToString());
     } 

     return list; 

} 

0 Responses to “Object Mapping (Bagian 2)”



  1. No Comments Yet

Leave a Reply




 

May 2009
M T W T F S S
« Apr    
 123
45678910
11121314151617
18192021222324
25262728293031

Blog Stats

  • 2,971 hits

Tags