티스토리 뷰

DAAB(Data Access Application Block) in Enterprise Library 2.0 - (3회)
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
 
사용자 삽입 이미지
키워드
Enterprise Library 2.0 Data Access Application Block
사용자 삽입 이미지
난이도
초급
사용자 삽입 이미지
작성일
2006-04-09 오후 9:59:39
사용자 삽입 이미지
조회수
1653회
사용자 삽입 이미지
평가점수
3.60
사용자 삽입 이미지
(5명 평가 평균)
사용자 삽입 이미지
첨부파일
(파일없음)
사용자 삽입 이미지
요약설명
DAAB(Data Access Application Block) in Enterprise Library for .NET 2.0은 DAC(Data Access Component) 레이어에서의 반복적인 ADO.NET 코딩량을 감소시켜주며 DB 커넥션 관리와 같은 사용자가 실수하기 쉬운 부분을 관리해주는 DAAB(Data Access Application Block)이 Enterprise Library에 통합된 버전이다. 또한 Enterprise Library 1.x에 있던 DAAB를 ADO.NET 2.0의 변화된 기능에 맞게 수정한 것이 DAAB(Data Access Application Block) in Enterprise Library for .NET 2.0이다.
사용자 삽입 이미지


사용자 삽입 이미지
 wooys
 
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

[Database Object생성하기]

[위구성정보설정과관련DLL참조추가,네임스페이스using추가후에해야할작업은DatabaseFactory클래스를통해사용할Database오브젝트를생성하는것이다.

이러한Database오브젝트는위에서설정한구성정보를바탕으로Database에Specific한Database오브젝트가생성된다.

Database오브젝트를생성하기위해서는DatabaseFactory클래스의CreateDatabase메서드를호출하면되는데이메서드의인자로구성파일내에있는Database Instance명을넘기면된다.

아무런인스턴스명도인자로넘기지않을경우에는구성정보파일내에Default Instance로설정된정보가Database오브젝트생성시에이용된다.

아래코드가Default Database Instance를이용해서Database Object를생성하는코드이다.(C#)

Database db = DatabaseFactory.CreateDatabase();

 

Default Database Instance가아니라위구성정보파일내의Northwind와같이Named Instance정보를이용해서Database Object를생성하기위해서는아래와같이코딩하면된다.

Database db = DatabaseFactory.CreateDatabase("Northwind");

 

혹은연결하고자하는DB의연결정보를알고있는경우DatabaseFactory클래스를사용하지않고추상클래스인Database의각DB별구체적인클래스를사용해서Database오브젝트를생성한다.이경우DB연결에대한정보는구성정보파일을사용하지않고해당DB의Database오브젝트생성시인자로넘겨준다.

아래코드는DB연결문자열을이용해서SqlDatabase오브젝트를생성하는코드이다.

string myConnectionString = GetConnectionString();

 

SqlDatabase sqlDatabase = new SqlDatabase(myConnectionString);]

 

[DAAB오버로드의종류]

  • 기존의SqlHelper, OracleHelper류의DAAB와다르게이번버전의DAAB에는ADO.NET 2.0의DbCommand오브젝트를인자로받아들이는오버로드가있다. DbCommand오브젝트를파라미터로받아들이는오버로드는기존버전에비해Flexibility와Controllibility가뛰어나다.
  • Stored Procedure이름과해당Stored Procedure에서Input Parameter로사용될값들의Collection을인자로넘길수있는오버로드가있다.
  • 인라인SQL문과파라미터없는Stored Procedure를실행시킬오버로드가준비되어있다.
  • 그리고위모든오버로드에transaction을받아들이는오버로드가있다. 

[DAAB사용법2(간단한DAAB사용예)]

[InlineSQL or Stored Procedure실행하기]

  • 디폴트데이터베이스인스턴스나명명된데이터베이스인스턴스생성

Dim db As Database = DatabaseFactory.CreateDatabase();

        or

        Dim salesDb As Database = DatabaseFactory.CreateDatabase(“sales”);

 

  • SQL커맨드실행

productDataSet = db.ExecuteDataSet(CommandType.Text, “SELECT ProductID, ProductName FROM Products”);

 

이경우사용하는DB와DB연결문자열을정확히알고있다면구성파일을사용하지않고아래와같이바로해당하는DB객체를생성할수있다.

SqlDatabase sqlDatabase = new SqlDatabase(myConnectionString);

GenericDatabase db = new GenericDatabase(connectionString, OdbcFactory.Instance);

 

[GenericDatabase]

Enterprise Library 1.x에서는각DB별Database-derived클래스가필요했었다.새로운버전인Enterprise Library 2.0에서는GenericDatabase 클래스가생겼는데GenericDatabase는어떤.NET Managed Provider와도사용될수있다.

 

[간단한DAAB사용예1]

Northwind데이터베이스에서CustomerID로주문정보untyped dataset을가져오는예제는아래와같다.

 

public DataSet GetOrdersByCustomerID(string customerID)

{

    Database northwind = DatabaseFactory.CreateDatabase();

 

    DbCommand command = northwind.GetSqlStringCommand

         ("SELECT [OrderID],[OrderDate] FROM [Orders] WHERE

           [CustomerID] = @CustomerID");

 

    northwind.AddInParameter(command, "@CustomerID", DbType.String, customerID);

 

    DataSet orders = new DataSet();

 

    northwind.LoadDataSet(command, orders, "orders");

 

    return orders;

}

 

[간단한DAAB사용예2(Static Factories)]

Northwind데이터베이스에서CustomerID로주문정보untyped dataset을가져오는예제는아래와같다.

 

Static Factories를 이용한 방법은 Enterprise Library 1.x에서 사용하던 방법이다.

Database northwind = DatabaseFactory.CreateDatabase();

Database northwind = DatabaseFactory.CreateDatabase("Northwind");

 

Web.config나 App.Config에 설정 정보를 이용하여 적절한 Database 클래스를 만든다.

 

<configuration>

  <configSections>

    <section name="dataConfiguration"          type="Microsoft.Practices.EnterpriseLibrary.                Data.Configuration.DatabaseSettings,        Microsoft.Practices.EnterpriseLibrary.Data" />

  configSections>

  <connectionStrings>

    <add

        name="Northwind"

        providerName="System.Data.SqlClient"

        connectionString="Data Source=(local);                   Initial Catalog=Northwind;                   Integrated Security=True" />

  connectionStrings>

  <dataConfiguration defaultDatabase="Northwind"/>

configuration>

 

[간단한DAAB사용예3(Instance Provider Factories)]

IConfigurationSource source = new SystemConfigurationSource();

DatabaseProviderFactory factory = new DatabaseProviderFactory(source);

Database northwind = factory.Create("Northwind");

 

[간단한DAAB사용예4(SqlDatabase Object Directly)]

아래코드는DB연결문자열을이용해서SqlDatabase오브젝트를생성하는코드이다.

 

SqlDatabase northwind = new SqlDatabase (ConfigurationManager.ConnectionStrings["Northwind"].ConnectionString);

 

 

출처 : http://www.gosu.net

«   2026/10   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
최근에 올라온 글
Total
Today
Yesterday