데이터 액세스 오브젝트를 사용하여 SQL문 실행

사용자 정의 인터페이스에 정의한 메소드를 호출하여 pureQuery에서 데이터베이스 오브젝트를 쿼리하고 갱신할 수 있습니다.

이러한 인터페이스를 정의한 후, pureQuery Generator를 실행하여 인터페이스를 구현하는 클래스를 작성하십시오.

com.ibm.pdq.runtime.factory.DataFactory 클래스는 애플리케이션이 어노테이션이 있는 메소드를 정의한 인터페이스의 구현을 인스턴스화할 수 있는 방법을 제공합니다.DataFactory.getData() 메소드가 리턴한 사용자 정의 인터페이스 구현은 com.ibm.pdq.runtime.Data도 구현합니다.

데이터베이스에 대해 SQL을 실행할 수 있도록 사용자 정의 인터페이스의 구현을 인스턴스화할 때 해당 데이터베이스에 대해 열린 연결이 있어야 합니다.

  1. 데이터베이스에 대해 java.sql.Connection을 작성하십시오.
  2. 그런 다음, DataFactory.getData() 메소드를 사용하여 해당 데이터베이스에 연결된 구현을 인스턴스화하십시오.

예를 들어, 다음과 유사한 애플리케이션 논리를 사용하여 구현을 인스턴스화할 수 있습니다.

Connection con = DriverManager.getConnection(...);
CustomerQuery cQuery = 
    DataFactory.getData(CustomerQuery.class, con);

데이터 소스에 대해 SQL을 실행할 수 있도록 사용자 정의 인터페이스의 구현을 인스턴스화할 때 해당 데이터 소스는 열려 있어야 합니다.

  1. 해당 데이터 소스에 대해 javax.sql.DataSource를 작성하십시오.
  2. 그런 다음, DataFactory.getData() 메소드를 사용하여 해당 데이터 소스에 연결된 구현을 인스턴스화하십시오.

예를 들어, 다음과 유사한 애플리케이션 논리를 사용하여 구현을 인스턴스화할 수 있습니다.

import javax.naming.*; 
import javax.sql.*; 
... 
Context ctx=new InitialContext(); 
DataSource ds=(DataSource)ctx.lookup("...");

CustomerQuery cQuery = 
    DataFactory.getData(CustomerQuery.class, ds);

DataFactoryjava.sql.Connection을 작성한 다음 Connection을 사용하여 기본 데이터 스토어에 액세스하는 Data 오브젝트를 인스턴스화합니다. 그런 다음, 예를 들어, Connection 특성을 수정하기 위해 애플리케이션에 내재적으로 작성된 Connection이 필요한 경우, 애플리케이션은 Data 오브젝트의 getConnection() 메소드를 사용하여 이에 대한 참조를 획득할 수 있습니다.

주의: 데이터 오브젝트는 스레드 안전 상태가 아닙니다. 여러 스레드에서 공유하지 마십시오. Data 오브젝트가 작성된 동일한 스레드에서만 사용하십시오.

피드백