Notice
Recent Posts
Recent Comments
Link
05-16 01:58
관리 메뉴

필피리의 잡학사전

자바와 oracle연동 -4 (Procedure) 본문

Developer/Java

자바와 oracle연동 -4 (Procedure)

김수필 2012. 1. 11. 18:03
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
* sqlgate와 java를 사용. java와 oracle연동방법은 앞에 설명되있으므로 pass
sqlgate 사용법은 간단하므로 간단한 스샷만.

1. 직접 oracle 데이터베이스에 쿼리문을 날려 데이터를 받는것이 아니라, database에 sql함수를 구현
 후 응용프로그램에서 사용하는 것.

2.Procedure
sqlgate에서 미리 sql함수를 구현한다.



/*------------------------------------------------------------------------------
-- 개체 이름 : SYSTEM.SELECTMOVIE
-- 만든 날짜 : 2012-01-11 오전 10:20:14
-- 마지막으로 수정한 날짜 : 2012-01-11 오전 10:20:14
-- 상태 : VALID
------------------------------------------------------------------------------*/
CREATE OR REPLACE PROCEDURE SYSTEM.selectmovie(pcursor OUT SYS_REFCURSOR)
 IS
BEGIN
        OPEN pcursor FOR SELECT * FROM movie;

END selectmovie;

/*------------------------------------------------------------------------------
-- 개체 이름 : SYSTEM.INSERTMOVIE
-- 만든 날짜 : 2012-01-11 오전 9:54:21
-- 마지막으로 수정한 날짜 : 2012-01-11 오전 9:54:21
-- 상태 : VALID
------------------------------------------------------------------------------*/
CREATE OR REPLACE PROCEDURE SYSTEM.InsertMovie(INMOVIENAME IN VARCHAR2, INACTOR in VARCHAR2, INCOUNT IN NUMBER)
 IS
BEGIN
        INSERT INTO movie(moviename, movieactor, mcount) VALUES (INMOVIENAME, INACTOR, INCOUNT);

END InsertMovie;



3.CallStatement
Java에서 CallableStatement 객체 사용하여 procedure를 불러와 데이터를 얻어온다.

CallableStatement call;
먼저 초기화

- 아까 procedure 에서 등록한 InsertMovie 사용 (테이블에 argument가 3개)
                        call = conn.prepareCall("{call InsertMovie(?,?,?)}");
                        call.setString(1, "myway");
                        call.setString(2, "sin");
                        call.setInt(3, 200);
                        call.executeUpdate();
                        System.out.println("추가성공");

- procedure에 있는 selectmovie 사용
                        call = conn.prepareCall("{call selectmovie(?)}");
                        call.registerOutParameter(1, OracleTypes.CURSOR);
                        call.executeUpdate();
                        rs = (ResultSet)call.getObject(1);

'Developer > Java' 카테고리의 다른 글

Swing - Table 만들기  (0) 2012.01.18
형변환(int -> string),(string->int)  (0) 2012.01.13
자바와 oracle연동 -3(도서관리 프로그램)  (0) 2012.01.11
Eclipse에 Window builder 설치하기  (1) 2012.01.10
Swing (간단한 예제)-2  (2) 2012.01.09
Comments