SQL 문구로 저장 프로세스 만들기 - 산소 중독

2672 단어
이 절은 파라미터가 없는 간단한 저장 과정을 예시한다.대부분의 저장 프로세스의 기능은 이 예보다 훨씬 복잡하지만, 여기에는 저장 프로세스의 몇 가지 기본 요점을 설명한다.앞에서 말한 바와 같이 서로 다른 DBMS가 저장 과정을 정의하는 문법은 다르다.예를 들어, 일부 DBMS는 Begin.을 사용합니다.end 또는 다른 키워드는 저장 프로세스 정의의 시작과 끝을 가리킨다.일부 DBMS에서는 다음 SQL 문에서 스토리지 프로세스를 만들 수 있습니다.
create procedure SHOW_SUPPLIERS
as
select SUPPLIERS.SUP_NAME, COFFEES.COF_NAME
from SUPPLIERS, COFFEES
where SUPPLIERS.SUP_ID = COFFEES.SUP_ID
order by SUP_NAME

다음 코드는 문자열에 SQL 문을 배치한 다음 나중에 사용할 수 있도록 변수 createProcedure에 지정합니다.
String createProcedure = "create procedure SHOW_SUPPLIERS " +
			 "as " +
			 "select SUPPLIERS.SUP_NAME, COFFEES.COF_NAME " +
			 "from SUPPLIERS, COFFEES " +
			 "where SUPPLIERS.SUP_ID = COFFEES.SUP_ID " +
			 "order by SUP_NAME";

다음 코드 세그먼트는 Connection 객체 con을 사용하여 Statement 객체를 작성하여 저장 프로세스를 만드는 SQL 문을 데이터베이스에 전송합니다.
Statement stmt = con.createStatement();
stmt.executeUpdate(createProcedure);

Storage Process SHOWSUPPLIERS는 호출 가능한 데이터베이스 대상으로 데이터베이스에 컴파일되어 저장되며 호출할 때 다른 방법을 호출하는 것과 같다.
JDBC에서 저장 프로세스 호출
JDBC는 Java로 작성된 프로그램에서 저장 프로세스를 호출할 수 있습니다.첫 번째 단계는 Callable Statement 객체를 작성하는 것입니다.Statement와PreparedStatement 대상처럼 열린 연결 대상을 이용하여 창설을 완성할 수 있습니다.Callable Statement 대상은 저장 프로세스의 호출을 포함합니다.그러나 저장 프로세스 자체는 포함되지 않는다.다음 첫 번째 줄 코드는 연결 con을 사용하여 저장 프로세스 SHOW 을 만듭니다.SUPPLIERS 호출괄호 안의 그 부분은 저장 과정의 전의 문법이다.드라이버가 "{call SHOW SUPPLIERS}"를 만났을 때, 이 전의 문법을 데이터베이스에서 사용하는 로컬 SQL로 변환하여 SHOW 라고 호출합니다.SUPPLIERS의 저장 프로세스입니다.

CallableStatement cs = con.prepareCall("{call SHOW_SUPPLIERS}");
ResultSet rs = cs.executeQuery();

수행 후 결과 셋rs의 내용은 다음과 같습니다.
SUP_NAME			COF_NAME
----------------		-----------------------
Acme, Inc.			Colombian
Acme, Inc.			Colombian_Decaf
Superior Coffee			French_Roast
Superior Coffee			French_Roast_Decaf
The High Ground			Espresso

cs를 실행하는 방법은excuteQuery입니다. cs가 호출한 저장 프로세스는 조회를 포함하고, 실행하면 결과 집합이 생성되기 때문입니다.저장 프로세스에 업데이트나 DLL 문이 포함되어 있으면 excuteUpdate 방법을 사용해야 합니다.그러나 때로는 하나의 저장 프로세스가 여러 개의 SQL 문장을 포함하기 때문에 하나의 결과 집합이 아니라, 하나의 업데이트 계수가 아니라, 일부 결과 집합과 업데이트 계수의 조합이 발생한다.이렇게 하면 여러 개의 결과 집합이 있는데, 이때는callable Statement를 실행하기 위해excute 방법을 사용해야 한다.
Callable Statement 클래스는 Prepared Statement의 하위 클래스이기 때문에 Callable Statement 대상은 Prepared Statement 대상과 마찬가지로 입력 파라미터를 가지고 있을 수 있습니다.또한 CallableStatement 객체에는 출력 매개변수나 입력/출력 매개변수가 포함될 수 있습니다.INOUT 매개변수와 excute 메서드는 거의 사용되지 않습니다.자세한 내용은 JDBC 데이터베이스에 대한 Java 액세스를 참조하십시오.

좋은 웹페이지 즐겨찾기