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)”